diff options
Diffstat (limited to 'shared/src/main/java')
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()); } } |
