Implemented the updating off all sprites depending on night/day and role

This commit is contained in:
Seraina 2022-05-14 12:46:07 +02:00
parent fa6ca7371e
commit 277eada934
4 changed files with 31 additions and 9 deletions

View File

@ -352,7 +352,6 @@ public class Client {
gameStateModel.setDayClone(false); gameStateModel.setDayClone(false);
LOGGER.debug("----------------Night, Your role is:" + gameStateModel.getYourRole() + gameStateModel); LOGGER.debug("----------------Night, Your role is:" + gameStateModel.getYourRole() + gameStateModel);
Sprites.setNightSprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff()); Sprites.setNightSprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff());
chatApp.getGameController().updateGameSprites();
chatApp.getGameController().setNoiseButtonInvisible(); chatApp.getGameController().setNoiseButtonInvisible();
chatApp.getGameController().setVoteButtonVisibilityNight(gameStateModel); chatApp.getGameController().setVoteButtonVisibilityNight(gameStateModel);
break; break;
@ -360,12 +359,12 @@ public class Client {
gameStateModel.setDayClone(true); gameStateModel.setDayClone(true);
LOGGER.debug("----------------Day, Your role is:" + gameStateModel.getYourRole()+ gameStateModel); LOGGER.debug("----------------Day, Your role is:" + gameStateModel.getYourRole()+ gameStateModel);
Sprites.setDaySprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff()); Sprites.setDaySprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff());
chatApp.getGameController().updateGameSprites();
chatApp.getGameController().setNoiseButtonVisible(); chatApp.getGameController().setNoiseButtonVisible();
chatApp.getGameController().setVoteButtonVisibilityDay(gameStateModel); chatApp.getGameController().setVoteButtonVisibilityDay(gameStateModel);
break; break;
case GuiParameters.updateGameState: case GuiParameters.updateGameState:
gameStateModel.setGSFromString(data); gameStateModel.setGSFromString(data);
chatApp.getGameController().updateGameSprites(LoungeSceneViewController.getTrainAnimationDayController());
chatApp.getGameController().updateRoomLabels(); chatApp.getGameController().updateRoomLabels();
gameStateModel.setRoleFromPosition(position); gameStateModel.setRoleFromPosition(position);
break; break;

View File

@ -78,9 +78,7 @@ public class Sprites {
shadow = SpritesDay.shadow; shadow = SpritesDay.shadow;
secondWagon = SpritesDay.secondWagon; secondWagon = SpritesDay.secondWagon;
emptyWagon = SpritesDay.emptyWagon; emptyWagon = SpritesDay.emptyWagon;
for (int i = 0; i < roles.length; i++) { updateDayRoomSprites(roles,kickedOff);
rooms[i] = getRoomDay(i, roles[i], kickedOff);
}
emptyWagonWall = SpritesDay.emptyWagonWall; emptyWagonWall = SpritesDay.emptyWagonWall;
fullWagon = SpritesDay.fullWagon; fullWagon = SpritesDay.fullWagon;
loki = SpritesDay.loki; loki = SpritesDay.loki;
@ -92,6 +90,11 @@ public class Sprites {
e.printStackTrace(); 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 * 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; shadow = SpritesNight.shadow;
secondWagon = SpritesNight.secondWagon; secondWagon = SpritesNight.secondWagon;
emptyWagon = SpritesNight.emptyWagon; emptyWagon = SpritesNight.emptyWagon;
for (int i = 0; i < roles.length; i++) { updateNightRoomSprites(roles,kickedOff);
rooms[i] = getRoomNight(i, roles[i], kickedOff);
}
emptyWagonWall = SpritesNight.emptyWagonWall; emptyWagonWall = SpritesNight.emptyWagonWall;
fullWagon = SpritesNight.fullWagon; fullWagon = SpritesNight.fullWagon;
loki = SpritesNight.loki; loki = SpritesNight.loki;
@ -115,6 +116,12 @@ public class Sprites {
fg = SpritesNight.fg; 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 * 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 * @param position the position of the room integer 0-5

View File

@ -49,6 +49,14 @@ public class TrainAnimationDayController implements Initializable {
LOGGER.debug("Empty TrainAnimationDayController() constructor was called"); 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() { public ChatApp getChatApp() {
return chatApp; return chatApp;
} }

View File

@ -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.ChatApp;
import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.GameStateModel; 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.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.multiplayer.helpers.GuiParameters;
import ch.unibas.dmi.dbis.cs108.BudaLogConfig; import ch.unibas.dmi.dbis.cs108.BudaLogConfig;
import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel;
@ -126,17 +128,23 @@ public class GameController implements Initializable {
@FXML @FXML
private AnchorPane chatAreaGame; private AnchorPane chatAreaGame;
public void updateGameSprites(){ public void updateGameSprites(TrainAnimationDayController trainAnimation){
Platform.runLater(new Runnable() { Platform.runLater(new Runnable() {
@Override @Override
public void run() { public void run() {
try{ try{
if(gameStateModel.getDayClone()) {
Sprites.updateDayRoomSprites(gameStateModel.getPassengerTrainClone()[1], gameStateModel.getKickedOff());
} else {
Sprites.updateNightRoomSprites(gameStateModel.getPassengerTrainClone()[1], gameStateModel.getKickedOff());
}
room0ImageView.setImage(Sprites.getARoom(0)); room0ImageView.setImage(Sprites.getARoom(0));
room1ImageView.setImage(Sprites.getARoom(1)); room1ImageView.setImage(Sprites.getARoom(1));
room2ImageView.setImage(Sprites.getARoom(2)); room2ImageView.setImage(Sprites.getARoom(2));
room3ImageView.setImage(Sprites.getARoom(3)); room3ImageView.setImage(Sprites.getARoom(3));
room4ImageView.setImage(Sprites.getARoom(4)); room4ImageView.setImage(Sprites.getARoom(4));
room5ImageView.setImage(Sprites.getARoom(5)); room5ImageView.setImage(Sprites.getARoom(5));
trainAnimation.updateSprites();
} catch (Exception e) { } catch (Exception e) {
LOGGER.info(e.getMessage()); LOGGER.info(e.getMessage());
} }