summaryrefslogtreecommitdiff
path: root/shared/src/main/java/kz
diff options
context:
space:
mode:
Diffstat (limited to 'shared/src/main/java/kz')
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java20
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java21
2 files changed, 39 insertions, 2 deletions
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java
index ec6e1cd..2054e68 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java
@@ -1,6 +1,11 @@
package kz.ilotterytea.frogartha.domain;
-public class PlayerData {
+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 PlayerData implements Transferable<PlayerData> {
private Identity identity;
private PlayerState state;
@@ -24,4 +29,17 @@ public class PlayerData {
public PlayerState getState() {
return state;
}
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer.serializeTransferable(identity).serializeTransferable(state);
+ }
+
+ @Override
+ public PlayerData deserialize(Deserializer deserializer) throws SerializationException {
+ return new PlayerData(
+ deserializer.deserializeTransferable(new Identity()),
+ deserializer.deserializeTransferable(new PlayerState())
+ );
+ }
}
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 d3bd18c..d745822 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
@@ -1,8 +1,12 @@
package kz.ilotterytea.frogartha.domain;
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 PlayerState {
+public class PlayerState implements Transferable<PlayerState> {
private final Vector3 position, direction;
private float nextJumpTimestamp;
@@ -39,4 +43,19 @@ public class PlayerState {
public void setDirection(float x, float y, float z) {
this.direction.set(x, y, z);
}
+
+ @Override
+ public void serialize(Serializer serializer) throws SerializationException {
+ serializer
+ .serializeFloatArray(new float[]{position.x, position.y, position.z})
+ .serializeFloatArray(new float[]{direction.x, direction.y, direction.z});
+ }
+
+ @Override
+ public PlayerState deserialize(Deserializer deserializer) throws SerializationException {
+ return new PlayerState(
+ new Vector3(deserializer.deserializeFloatArray()),
+ new Vector3(deserializer.deserializeFloatArray())
+ );
+ }
}