diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java index fad1890..c14392a 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java @@ -31,6 +31,7 @@ public class ChatApp extends Application { public Node chat; public Node game; + public Node backgroundDay; public ChatApp() { super(); @@ -159,10 +160,14 @@ public class ChatApp extends Application { try { URL chatResource = ChatApp.class.getResource("chat/ChatView.fxml"); URL gameResource = ChatApp.class.getResource("game/GameDayAll.fxml"); + URL bgDayResource = ChatApp.class.getResource("TrainAnimationViewDay.fxml"); this.chat = FXMLLoader.load(Objects.requireNonNull(chatResource)); this.game = FXMLLoader.load(Objects.requireNonNull(gameResource)); + this.backgroundDay = FXMLLoader.load(Objects.requireNonNull(bgDayResource)); + LOGGER.debug(bgDayResource); } catch (Exception e) { - LOGGER.warn(e.getMessage()); + LOGGER.warn("There was an Exception while loading"); + e.printStackTrace(); } URL loungeResource = ChatApp.class.getResource( "lounge/LoungeSceneView.fxml"); 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 new file mode 100644 index 0000000..cacdad7 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java @@ -0,0 +1,70 @@ +package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui; + +import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.lounge.LoungeSceneViewController; +import java.net.URL; +import java.util.ResourceBundle; +import javafx.animation.Animation; +import javafx.application.Platform; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.image.ImageView; +import javafx.scene.layout.AnchorPane; +import javafx.util.Duration; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class TrainAnimationDayController implements Initializable { + public static final Logger LOGGER = LogManager.getLogger(TrainAnimationDayController.class); + public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + + @FXML + private ImageView wheelsImageView; + @FXML + private ImageView shadowTrain; + @FXML + private ImageView wagonBGImageView; + @FXML + private ImageView wagonFloorImageView; + @FXML + private AnchorPane wheelsAnchorPane; + @FXML + private AnchorPane gameAnchorPane; + @FXML + private ImageView wagonFullImageView; + @FXML + private ImageView lokiImageView; + + private ChatApp chatApp; + private static ChatApp cApp; + + public TrainAnimationDayController(){ + super(); + LOGGER.debug("Empty TrainAnimationDayController() constructor was called"); + } + + public ChatApp getChatApp() { + return chatApp; + } + + public void setChatApp(ChatApp chatApp) { + this.chatApp = chatApp; + } + + public static void setcApp(ChatApp cApp) { + TrainAnimationDayController.cApp = cApp; + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + setChatApp(cApp); + Platform.runLater(new Runnable() { + @Override + public void run() { + Animation wheels = new WheelsAnimation(Duration.millis(1000), wheelsImageView); + wheels.setCycleCount(Animation.INDEFINITE); + wheels.play(); + } + }); + } +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/WheelsAnimation.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/WheelsAnimation.java new file mode 100644 index 0000000..9c74845 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/WheelsAnimation.java @@ -0,0 +1,82 @@ +package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui; + +import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import javafx.animation.Animation; +import javafx.animation.Timeline.*; +import javafx.animation.Interpolator; +import javafx.animation.Transition; +import javafx.fxml.FXML; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.util.Duration; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class WheelsAnimation extends Transition { + public static final Logger LOGGER = LogManager.getLogger(WheelsAnimation.class); + public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + + ImageView imageView; + private static final Image[] wheels = new Image[26]; + private int index; + + + WheelsAnimation(Duration duration, ImageView imageView) { + this.imageView = imageView; + setCycleDuration(duration); + setInterpolator(Interpolator.LINEAR); + index = 1; + wheels[0] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0001.png"); + wheels[1] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0002.png"); + wheels[2] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0003.png"); + wheels[3] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0004.png"); + wheels[4] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0005.png"); + wheels[5] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0006.png"); + wheels[6] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0007.png"); + wheels[7] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0008.png"); + wheels[8] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0009.png"); + wheels[9] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0010.png"); + wheels[10] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0011.png"); + wheels[11] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0012.png"); + wheels[12] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0013.png"); + wheels[13] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0014.png"); + wheels[14] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0015.png"); + wheels[15] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0016.png"); + wheels[16] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0017.png"); + wheels[17] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0018.png"); + wheels[18] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0019.png"); + wheels[19] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0020.png"); + wheels[20] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0021.png"); + wheels[21] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0022.png"); + wheels[22] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0023.png"); + wheels[23] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0024.png"); + wheels[24] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0025.png"); + wheels[25] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0026.png"); + } + + + @Override + protected void interpolate(double frac) { + if(index == 25) index = 0; + imageView.setImage(wheels[index]); + index++; + } +} + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java index 8d75262..20033b7 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java @@ -4,6 +4,7 @@ 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.ChatApp; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.LobbyListView; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.TrainAnimationDayController; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol; import ch.unibas.dmi.dbis.cs108.multiplayer.server.JServerProtocolParser; import java.net.URL; @@ -49,7 +50,10 @@ public class LoungeSceneViewController implements Initializable { public static final Logger LOGGER = LogManager.getLogger(LoungeSceneViewController.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); - + @FXML + private AnchorPane backGroundAnchorPane; + @FXML + private AnchorPane gameDisplayAnchorPane; @FXML private TextFlow highScore; @FXML @@ -136,6 +140,8 @@ public class LoungeSceneViewController implements Initializable { ClientListView.setVisible(true); ClientListView.setItems(clients); addChatView(); + addBackgroundDay(); + TrainAnimationDayController.setcApp(this.cApp); ClientListView.setItems(clients); ClientListView.setCellFactory(param -> { @@ -363,6 +369,20 @@ public class LoungeSceneViewController implements Initializable { }); } + public void addBackgroundDay() { + Platform.runLater(new Runnable() { + @Override + public void run() { + try { + LOGGER.debug("in addBackgroundDay() run()"); + gameDisplayAnchorPane.getChildren().add(chatApp.backgroundDay); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } + /** * Adds players to a lobby "NMEMB" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} * diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDay.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDay.css new file mode 100644 index 0000000..0574754 --- /dev/null +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDay.css @@ -0,0 +1,3 @@ +*{ + -fx-background-color: transparent; +} \ No newline at end of file diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml new file mode 100644 index 0000000..3d0aa2c --- /dev/null +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css index f02fda2..68646cb 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDay.css @@ -5,7 +5,7 @@ .button{ } -.roomButtonGroup{ +#roomButtonGroup{ -fx-background-color: transparent; } @@ -16,7 +16,7 @@ -fx-animated: null; } -.notificationText{ +#notificationText{ -fx-alignment: center; -fx-text-fill: black; -fx-font-family: Bahnschrift; diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml index 14a3064..9838413 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml @@ -10,9 +10,10 @@ - + - + + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/boarderPane.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/boarderPane.css new file mode 100644 index 0000000..d2fe3fa --- /dev/null +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/boarderPane.css @@ -0,0 +1,20 @@ +*{ + -fx-background-color: transparent; +} + +#NTtBToolBar{ + -fx-border-color: grey; + -fx-background-color: rgba(255,255,255,0.05); +} + +.button{ + -fx-border-color: darkgrey; + -fx-background-color: grey; + -fx-text-fill: white; +} + +.button:pressed{ + -fx-border-color: grey; + -fx-background-color: lightgrey; + -fx-text-fill: black; +} \ No newline at end of file diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css new file mode 100644 index 0000000..74d0462 --- /dev/null +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/loungStyle.css @@ -0,0 +1,5 @@ + +#backGroundAnchorPane{ + /*-fx-background-color: black;*/ + /*-fx-background-image: url(../game/Day/Full_Wagon.png);*/ +} \ No newline at end of file diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/wheelsAnimation.css b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/wheelsAnimation.css new file mode 100644 index 0000000..0574754 --- /dev/null +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/wheelsAnimation.css @@ -0,0 +1,3 @@ +*{ + -fx-background-color: transparent; +} \ No newline at end of file diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/wheelsAnimationView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/wheelsAnimationView.fxml new file mode 100644 index 0000000..cd24d49 --- /dev/null +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/wheelsAnimationView.fxml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +