diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index e273e3b..51cad77 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -184,6 +184,14 @@ return this; } + public Character updateCharacter(String characterId, Position3D position, Quaternion3D angle, int modelID) { + Character character = characterMap.get(characterId); + if (character != null) { + character.update(position, angle, modelID); + } + return character; + } + public Bullet updateBullet(String playerId, String bulletId, Position3D position, Quaternion3D angle) { HashMap map = bulletMap.get(playerId); if (map != null) { @@ -212,7 +220,7 @@ HashMap map = bulletMap.get(playerId); if (map != null) { Bullet removedBullet = map.remove(bulletId); - this.getUniverse().displace(removedBullet.getPlaceable()); + universe.displace(removedBullet.getPlaceable()); return removedBullet; } return null; diff --git a/src/main/java/cactusServer/entities/Player.java b/src/main/java/cactusServer/entities/Player.java index 18efda5..baff8ad 100644 --- a/src/main/java/cactusServer/entities/Player.java +++ b/src/main/java/cactusServer/entities/Player.java @@ -138,7 +138,7 @@ } public Player update(String characterID, Position3D position, Quaternion3D angle, CameraState cameraState, - EmoteState.EmoteType animationClassToStart) { + EmoteState.EmoteType animationClassToStart, long lastUpdateTime) { setPosition(position); setAngle(angle); if (!this.characterID.equals(characterID)) { @@ -147,6 +147,7 @@ setCameraState(cameraState); updateEmoteType(animationClassToStart); // updateAreaURI(); + setLastUpdateTime(lastUpdateTime); return this; } diff --git a/src/main/java/cactusServer/models/Instances.java b/src/main/java/cactusServer/models/Instances.java index 3f99c4a..71e0146 100644 --- a/src/main/java/cactusServer/models/Instances.java +++ b/src/main/java/cactusServer/models/Instances.java @@ -107,15 +107,11 @@ public Player updatePlayer(String playerId, String characterID, Position3D position, Quaternion3D angle, CameraState cameraState, EmoteState.EmoteType animationClassToStart) { + long lastUpdateTime = System.nanoTime(); Player player = playerMap.get(playerId); - player.update(characterID, position, angle, cameraState, animationClassToStart); - return player; - } - - public Player updatePlayer(String playerId, String characterID, Position3D position, Quaternion3D angle, - CameraState cameraState, EmoteState.EmoteType animationClassToStart, long lastUpdateTime) { - Player player = updatePlayer(playerId, characterID, position, angle, cameraState, animationClassToStart); - player.setLastUpdateTime(lastUpdateTime); + if (player != null) { + player.update(characterID, position, angle, cameraState, animationClassToStart, lastUpdateTime); + } return player; } diff --git a/src/main/java/cactusServer/resources/CharactersRest.java b/src/main/java/cactusServer/resources/CharactersRest.java index 04f85c6..0d0d838 100644 --- a/src/main/java/cactusServer/resources/CharactersRest.java +++ b/src/main/java/cactusServer/resources/CharactersRest.java @@ -71,10 +71,10 @@ public void updateCharacter(@PathParam("instanceId") String instanceId, @PathParam("characterId") String characterId, @FormParam("position") Position3D position, @FormParam("angle") Quaternion3D angle, @FormParam("modelID") int modelID) { - Character character = Instances.getInstance().getInstance(instanceId).getCharacter(characterId); + Instance instance = Instances.getInstance().getInstance(instanceId); + Character character = instance.updateCharacter(characterId, position, angle, modelID); if (character == null) { throw new WebApplicationException(400); } - character.update(position, angle, modelID); } } diff --git a/src/main/java/cactusServer/resources/PlayersRest.java b/src/main/java/cactusServer/resources/PlayersRest.java index 1e0352a..6820d4f 100644 --- a/src/main/java/cactusServer/resources/PlayersRest.java +++ b/src/main/java/cactusServer/resources/PlayersRest.java @@ -65,10 +65,8 @@ @FormParam("cameraState") CameraState cameraState, @FormParam("animationClassToStart") EmoteState.EmoteType animationClassToStart) { Player player = Instances.getInstance().updatePlayer(playerId, characterID, position, angle, cameraState, - animationClassToStart, System.nanoTime()); + animationClassToStart); return JSON.encode(player); -// return JSON.encode(Instances.getInstance().updatePlayer(playerId, characterID, position, angle, cameraState, -// animationClassToStart)); } @Path("/{playerId}")