diff options
| -rw-r--r-- | shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java | 20 | ||||
| -rw-r--r-- | shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java | 21 |
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()) + ); + } } |
