diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java index 5056abc..1e204c2 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java @@ -352,7 +352,6 @@ public class Client { gameStateModel.setDayClone(false); LOGGER.debug("----------------Night, Your role is:" + gameStateModel.getYourRole() + gameStateModel); Sprites.setNightSprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff()); - chatApp.getGameController().updateGameSprites(); chatApp.getGameController().setNoiseButtonInvisible(); chatApp.getGameController().setVoteButtonVisibilityNight(gameStateModel); break; @@ -360,12 +359,12 @@ public class Client { gameStateModel.setDayClone(true); LOGGER.debug("----------------Day, Your role is:" + gameStateModel.getYourRole()+ gameStateModel); Sprites.setDaySprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff()); - chatApp.getGameController().updateGameSprites(); chatApp.getGameController().setNoiseButtonVisible(); chatApp.getGameController().setVoteButtonVisibilityDay(gameStateModel); break; case GuiParameters.updateGameState: gameStateModel.setGSFromString(data); + chatApp.getGameController().updateGameSprites(LoungeSceneViewController.getTrainAnimationDayController()); chatApp.getGameController().updateRoomLabels(); gameStateModel.setRoleFromPosition(position); break; diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/Sprites.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/Sprites.java index 3597bcb..74559a9 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/Sprites.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/Sprites.java @@ -78,9 +78,7 @@ public class Sprites { shadow = SpritesDay.shadow; secondWagon = SpritesDay.secondWagon; emptyWagon = SpritesDay.emptyWagon; - for (int i = 0; i < roles.length; i++) { - rooms[i] = getRoomDay(i, roles[i], kickedOff); - } + updateDayRoomSprites(roles,kickedOff); emptyWagonWall = SpritesDay.emptyWagonWall; fullWagon = SpritesDay.fullWagon; loki = SpritesDay.loki; @@ -92,6 +90,11 @@ public class Sprites { e.printStackTrace(); } } + public static void updateDayRoomSprites(String[] roles, boolean[] kickedOff) { + for (int i = 0; i < roles.length; i++) { + rooms[i] = getRoomDay(i, roles[i], kickedOff); + } + } /** * Sets all Images of this class to the Night version, takes into account which room is a ghost @@ -104,9 +107,7 @@ public class Sprites { shadow = SpritesNight.shadow; secondWagon = SpritesNight.secondWagon; emptyWagon = SpritesNight.emptyWagon; - for (int i = 0; i < roles.length; i++) { - rooms[i] = getRoomNight(i, roles[i], kickedOff); - } + updateNightRoomSprites(roles,kickedOff); emptyWagonWall = SpritesNight.emptyWagonWall; fullWagon = SpritesNight.fullWagon; loki = SpritesNight.loki; @@ -115,6 +116,12 @@ public class Sprites { fg = SpritesNight.fg; } + public static void updateNightRoomSprites(String[] roles, boolean[] kickedOff) { + for (int i = 0; i < roles.length; i++) { + rooms[i] = getRoomNight(i, roles[i], kickedOff); + } + } + /** * Returns a room Image from SpritesDay, corresponding to the position and the role of the passenger in that room * @param position the position of the room integer 0-5 diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java index 33eecae..ed96fcf 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java @@ -49,6 +49,14 @@ public class TrainAnimationDayController implements Initializable { LOGGER.debug("Empty TrainAnimationDayController() constructor was called"); } + public void updateSprites(){ + shadowTrain.setImage(Sprites.getShadow()); + wagonBGImageView.setImage(Sprites.getSecondWagon()); + wagonFloorImageView.setImage(Sprites.getEmptyWagon()); + wagonFullImageView.setImage(Sprites.getFullWagon()); + lokiImageView.setImage(Sprites.getLoki()); + } + public ChatApp getChatApp() { return chatApp; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java index aca4fd5..d2d635d 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java @@ -5,6 +5,8 @@ import static javafx.scene.AccessibleRole.PARENT; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ChatApp; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.GameStateModel; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.Sprites; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.SpritesDay; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.TrainAnimationDayController; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; @@ -126,17 +128,23 @@ public class GameController implements Initializable { @FXML private AnchorPane chatAreaGame; - public void updateGameSprites(){ + public void updateGameSprites(TrainAnimationDayController trainAnimation){ Platform.runLater(new Runnable() { @Override public void run() { try{ + if(gameStateModel.getDayClone()) { + Sprites.updateDayRoomSprites(gameStateModel.getPassengerTrainClone()[1], gameStateModel.getKickedOff()); + } else { + Sprites.updateNightRoomSprites(gameStateModel.getPassengerTrainClone()[1], gameStateModel.getKickedOff()); + } room0ImageView.setImage(Sprites.getARoom(0)); room1ImageView.setImage(Sprites.getARoom(1)); room2ImageView.setImage(Sprites.getARoom(2)); room3ImageView.setImage(Sprites.getARoom(3)); room4ImageView.setImage(Sprites.getARoom(4)); room5ImageView.setImage(Sprites.getARoom(5)); + trainAnimation.updateSprites(); } catch (Exception e) { LOGGER.info(e.getMessage()); }