diff options
Diffstat (limited to 'core')
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) { |
