summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java8
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java8
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java5
3 files changed, 18 insertions, 3 deletions
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 39cc866..181be14 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/entities/RenderableEntity.java
@@ -27,6 +27,10 @@ public abstract class RenderableEntity extends Entity {
return position;
}
+ public void setPosition(Vector3 pos) {
+ setPosition(pos.x, pos.y, pos.z);
+ }
+
public void setPosition(float x, float y, float z) {
position.set(x, y, z);
decal.setPosition(position);
@@ -43,6 +47,10 @@ public abstract class RenderableEntity extends Entity {
return direction;
}
+ public void setDirection(Vector3 dir) {
+ setDirection(dir.x, dir.y, dir.z);
+ }
+
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/screens/GameScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java
index 421a458..af83b8b 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java
@@ -12,6 +12,7 @@ import com.badlogic.gdx.graphics.g3d.decals.DecalBatch;
import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;
import com.badlogic.gdx.math.Vector3;
import kz.ilotterytea.frogartha.FrogarthaGame;
+import kz.ilotterytea.frogartha.domain.PlayerData;
import kz.ilotterytea.frogartha.entities.LocalPlayerEntity;
import kz.ilotterytea.frogartha.entities.PlayerEntity;
import net.mgsx.gltf.scene3d.attributes.PBRCubemapAttribute;
@@ -48,8 +49,11 @@ public class GameScreen implements Screen {
playerEntityMap = new HashMap<>();
- for (Integer id : game.getSessionClient().getPlayerDataMap().keySet()) {
- playerEntityMap.put(id, new PlayerEntity());
+ for (Map.Entry<Integer, PlayerData> entry : game.getSessionClient().getPlayerDataMap().entrySet()) {
+ PlayerEntity entity = new PlayerEntity();
+ entity.setPosition(entry.getValue().getState().getPosition());
+ entity.setDirection(entry.getValue().getState().getDirection());
+ playerEntityMap.put(entry.getKey(), entity);
}
}
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 6fddee9..38e8578 100644
--- a/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java
+++ b/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java
@@ -120,7 +120,10 @@ public class SessionHandlers {
}
GameScreen screen = (GameScreen) game.getScreen();
- screen.getPlayerEntityMap().put(event.getPlayerId(), new PlayerEntity());
+ PlayerEntity entity = new PlayerEntity();
+ entity.setPosition(event.getData().getState().getPosition());
+ entity.setDirection(event.getData().getState().getDirection());
+ screen.getPlayerEntityMap().put(event.getPlayerId(), entity);
}
public static void handlePlayerLeftRoomEvent(PlayerLeftRoomEvent event) {