summaryrefslogtreecommitdiff
path: root/shared/src
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-01-22 01:00:49 +0500
committerilotterytea <iltsu@alright.party>2025-01-22 01:00:49 +0500
commitb3739521c1dcaed9bd451e00067b7d304521745f (patch)
tree04403d23708e2cdfa35452243323c9f24cde5e26 /shared/src
parenta7f77c115bc95eb8a667df1146cc26dc17367879 (diff)
feat: player direction is now calculated by server
Diffstat (limited to 'shared/src')
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java2
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/client/ChangedDirectionAction.java32
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/events/ChangedDirectionEvent.java35
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java4
4 files changed, 72 insertions, 1 deletions
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
index 15ba015..d3bd18c 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
@@ -37,6 +37,6 @@ public class PlayerState {
}
public void setDirection(float x, float y, float z) {
- this.position.set(x, y, z);
+ this.direction.set(x, y, z);
}
}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/client/ChangedDirectionAction.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/client/ChangedDirectionAction.java
new file mode 100644
index 0000000..9c64c56
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/client/ChangedDirectionAction.java
@@ -0,0 +1,32 @@
+package kz.ilotterytea.frogartha.domain.client;
+
+import com.badlogic.gdx.math.Vector3;
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+
+public class ChangedDirectionAction implements Transferable<ChangedDirectionAction> {
+ private Vector3 direction;
+
+ public ChangedDirectionAction() {
+ }
+
+ public ChangedDirectionAction(Vector3 direction) {
+ this.direction = direction;
+ }
+
+ public Vector3 getDirection() {
+ return direction;
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeFloatArray(new float[]{direction.x, direction.y, direction.z});
+ }
+
+ @Override
+ public ChangedDirectionAction deserialize(Deserializer deserializer) throws SerializationException {
+ return new ChangedDirectionAction(new Vector3(deserializer.deserializeFloatArray()));
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/events/ChangedDirectionEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/events/ChangedDirectionEvent.java
new file mode 100644
index 0000000..eefe20a
--- /dev/null
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/events/ChangedDirectionEvent.java
@@ -0,0 +1,35 @@
+package kz.ilotterytea.frogartha.events;
+
+import com.badlogic.gdx.math.Vector3;
+import com.github.czyzby.websocket.serialization.SerializationException;
+import com.github.czyzby.websocket.serialization.Transferable;
+import com.github.czyzby.websocket.serialization.impl.Deserializer;
+import com.github.czyzby.websocket.serialization.impl.Serializer;
+
+public class ChangedDirectionEvent extends Event implements Transferable<ChangedDirectionEvent> {
+ private Vector3 direction;
+
+ public ChangedDirectionEvent() {
+ }
+
+ public ChangedDirectionEvent(int playerId, Vector3 direction) {
+ super(playerId);
+ this.direction = direction;
+ }
+
+ public Vector3 getDirection() {
+ return direction;
+ }
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer
+ .serializeInt(playerId)
+ .serializeFloatArray(new float[]{direction.x, direction.y, direction.z});
+ }
+
+ @Override
+ public ChangedDirectionEvent deserialize(Deserializer deserializer) throws SerializationException {
+ return new ChangedDirectionEvent(deserializer.deserializeInt(), new Vector3(deserializer.deserializeFloatArray()));
+ }
+}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java b/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java
index 1c62e0d..a00c0ff 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/utils/SerializerUtils.java
@@ -2,8 +2,10 @@ package kz.ilotterytea.frogartha.utils;
import com.github.czyzby.websocket.serialization.impl.ManualSerializer;
import kz.ilotterytea.frogartha.domain.Identity;
+import kz.ilotterytea.frogartha.domain.client.ChangedDirectionAction;
import kz.ilotterytea.frogartha.domain.client.PlayerJumpAction;
import kz.ilotterytea.frogartha.domain.server.Acknowledge;
+import kz.ilotterytea.frogartha.events.ChangedDirectionEvent;
import kz.ilotterytea.frogartha.events.PlayerJumpEvent;
import kz.ilotterytea.frogartha.exceptions.PlayerKickException;
@@ -14,5 +16,7 @@ public class SerializerUtils {
serializer.register(new PlayerKickException());
serializer.register(new PlayerJumpAction());
serializer.register(new PlayerJumpEvent());
+ serializer.register(new ChangedDirectionAction());
+ serializer.register(new ChangedDirectionEvent());
}
}