summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/entities/LocalPlayerEntity.java7
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java5
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java6
-rw-r--r--server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java7
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java19
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/ChangedDirectionAction.java14
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/ChangedDirectionEvent.java13
7 files changed, 42 insertions, 29 deletions
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/entities/LocalPlayerEntity.java b/core/src/main/java/kz/ilotterytea/frogartha/entities/LocalPlayerEntity.java
index 4971635..f3d3ef1 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/entities/LocalPlayerEntity.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/entities/LocalPlayerEntity.java
@@ -3,6 +3,7 @@ package kz.ilotterytea.frogartha.entities;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.graphics.Camera;
+import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.math.collision.Ray;
import kz.ilotterytea.frogartha.FrogarthaGame;
@@ -52,10 +53,10 @@ public class LocalPlayerEntity extends PlayerEntity {
Ray ray = camera.getPickRay(Gdx.input.getX(), Gdx.input.getY());
final float distance = -ray.origin.y / ray.direction.y;
Vector3 point = new Vector3(ray.direction).scl(distance).add(ray.origin);
- Vector3 direction = new Vector3(point.x, position.y, point.z);
+ Vector2 d = new Vector2(point.x, point.z);
- if (direction.x != this.direction.x || direction.z != this.direction.z) {
- FrogarthaGame.getInstance().getSessionClient().send(new ChangedDirectionAction(direction));
+ if (d.x != this.direction.x || d.y != this.direction.z) {
+ FrogarthaGame.getInstance().getSessionClient().send(new ChangedDirectionAction(d));
}
}
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java b/core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java
index 181be14..4a6e547 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java
@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.g3d.decals.Decal;
import com.badlogic.gdx.graphics.g3d.decals.DecalBatch;
+import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.math.collision.BoundingBox;
@@ -51,6 +52,10 @@ public abstract class RenderableEntity extends Entity {
setDirection(dir.x, dir.y, dir.z);
}
+ public void setDirection(Vector2 dir) {
+ setDirection(dir.x, position.y, dir.y);
+ }
+
public void setDirection(float x, float y, float z) {
direction.set(x, y, z);
decal.lookAt(direction, Vector3.Y);
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java b/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java
index 38e8578..35311ac 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java
@@ -1,6 +1,6 @@
package kz.ilotterytea.frogartha.sessions;
-import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Vector2;
import kz.ilotterytea.frogartha.FrogarthaGame;
import kz.ilotterytea.frogartha.domain.PlayerData;
import kz.ilotterytea.frogartha.domain.RoomTopic;
@@ -81,9 +81,9 @@ public class SessionHandlers {
return;
}
- Vector3 direction = event.getDirection();
+ Vector2 direction = event.getDirection();
- entity.setDirection(direction.x, entity.getPosition().y, direction.z);
+ entity.setDirection(direction.x, entity.getPosition().y, direction.y);
}
public static void handleSenderJoinedRoomEvent(SenderJoinedRoomEvent event) {
diff --git a/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java b/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
index 621affd..6f16281 100644
--- a/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
+++ b/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
@@ -1,5 +1,6 @@
package kz.ilotterytea.frogartha.server;
+import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
import kz.ilotterytea.frogartha.FrogarthaConstants;
import kz.ilotterytea.frogartha.domain.Identity;
@@ -54,7 +55,7 @@ public class ServerHandlers {
Vector3 startPosition = position.cpy();
float jumpDistance = action.getJumpStrength() * FrogarthaConstants.Player.JUMP_SPEED;
- Vector3 d = new Vector3(state.getDirection()).sub(startPosition).nor();
+ Vector3 d = new Vector3(state.getDirection().x, state.getPosition().y, state.getDirection().y).sub(startPosition).nor();
Vector3 endPosition = new Vector3(
position.x + d.x * jumpDistance,
@@ -79,9 +80,9 @@ public class ServerHandlers {
}
PlayerState state = player.getState();
- Vector3 direction = action.getDirection();
+ Vector2 direction = action.getDirection();
- state.setDirection(direction.x, state.getPosition().y, direction.z);
+ state.setDirection(direction.x, direction.y);
ChangedDirectionEvent event = new ChangedDirectionEvent(player.getId(), state.getDirection());
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 d745822..0aa89c5 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerState.java
@@ -1,5 +1,6 @@
package kz.ilotterytea.frogartha.domain;
+import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
import com.github.czyzby.websocket.serialization.SerializationException;
import com.github.czyzby.websocket.serialization.Transferable;
@@ -7,14 +8,15 @@ import com.github.czyzby.websocket.serialization.impl.Deserializer;
import com.github.czyzby.websocket.serialization.impl.Serializer;
public class PlayerState implements Transferable<PlayerState> {
- private final Vector3 position, direction;
+ private final Vector3 position;
+ private final Vector2 direction;
private float nextJumpTimestamp;
public PlayerState() {
- this(new Vector3(), new Vector3());
+ this(new Vector3(), new Vector2());
}
- public PlayerState(Vector3 position, Vector3 direction) {
+ public PlayerState(Vector3 position, Vector2 direction) {
this.position = position;
this.direction = direction;
this.nextJumpTimestamp = 0;
@@ -28,7 +30,7 @@ public class PlayerState implements Transferable<PlayerState> {
this.position.set(x, y, z);
}
- public Vector3 getDirection() {
+ public Vector2 getDirection() {
return direction;
}
@@ -40,22 +42,23 @@ public class PlayerState implements Transferable<PlayerState> {
this.nextJumpTimestamp = nextJumpTimestamp;
}
- public void setDirection(float x, float y, float z) {
- this.direction.set(x, y, z);
+ public void setDirection(float x, float z) {
+ this.direction.set(x, 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});
+ .serializeFloat(direction.x)
+ .serializeFloat(direction.y);
}
@Override
public PlayerState deserialize(Deserializer deserializer) throws SerializationException {
return new PlayerState(
new Vector3(deserializer.deserializeFloatArray()),
- new Vector3(deserializer.deserializeFloatArray())
+ new Vector2(deserializer.deserializeFloat(), deserializer.deserializeFloat())
);
}
}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/ChangedDirectionAction.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/ChangedDirectionAction.java
index b3004ba..579e3a2 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/ChangedDirectionAction.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/actions/ChangedDirectionAction.java
@@ -1,32 +1,34 @@
package kz.ilotterytea.frogartha.domain.actions;
-import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Vector2;
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;
+ private Vector2 direction;
public ChangedDirectionAction() {
}
- public ChangedDirectionAction(Vector3 direction) {
+ public ChangedDirectionAction(Vector2 direction) {
this.direction = direction;
}
- public Vector3 getDirection() {
+ public Vector2 getDirection() {
return direction;
}
@Override
public void serialize(Serializer serializer) throws SerializationException {
- serializer.serializeFloatArray(new float[]{direction.x, direction.y, direction.z});
+ serializer
+ .serializeFloat(direction.x)
+ .serializeFloat(direction.y);
}
@Override
public ChangedDirectionAction deserialize(Deserializer deserializer) throws SerializationException {
- return new ChangedDirectionAction(new Vector3(deserializer.deserializeFloatArray()));
+ return new ChangedDirectionAction(new Vector2(deserializer.deserializeFloat(), deserializer.deserializeFloat()));
}
}
diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/ChangedDirectionEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/ChangedDirectionEvent.java
index 71eea4d..bc8a3a9 100644
--- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/ChangedDirectionEvent.java
+++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/ChangedDirectionEvent.java
@@ -1,23 +1,23 @@
package kz.ilotterytea.frogartha.domain.events;
-import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Vector2;
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;
+ private Vector2 direction;
public ChangedDirectionEvent() {
}
- public ChangedDirectionEvent(int playerId, Vector3 direction) {
+ public ChangedDirectionEvent(int playerId, Vector2 direction) {
super(playerId);
this.direction = direction;
}
- public Vector3 getDirection() {
+ public Vector2 getDirection() {
return direction;
}
@@ -25,11 +25,12 @@ public class ChangedDirectionEvent extends Event implements Transferable<Changed
public void serialize(Serializer serializer) throws SerializationException {
serializer
.serializeInt(playerId)
- .serializeFloatArray(new float[]{direction.x, direction.y, direction.z});
+ .serializeFloat(direction.x)
+ .serializeFloat(direction.y);
}
@Override
public ChangedDirectionEvent deserialize(Deserializer deserializer) throws SerializationException {
- return new ChangedDirectionEvent(deserializer.deserializeInt(), new Vector3(deserializer.deserializeFloatArray()));
+ return new ChangedDirectionEvent(deserializer.deserializeInt(), new Vector2(deserializer.deserializeFloat(), deserializer.deserializeFloat()));
}
}