diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java index 8f070dfa53c545e24174bf78ce44e3a3f8612300..c3abb1068632795a70cfec81b2f5bc0cf594d921 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java @@ -1,4 +1,14 @@ package de.hdm_stuttgart.battlearena.Controller; -public class LocalCreateController { +import javafx.fxml.FXML; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; + +public class LocalCreateController extends SceneLoader { + @FXML public BorderPane parent; + + public void playScene() { + Pane pane = new Pane(loadScene("Play")); + parent.setCenter(pane.getChildren().get(0)); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java index 4fa73f1d596e95461bfb44775fdb526efc4377f3..db1ccca54877cad742506b8495a1bece0c0543fe 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java @@ -1,4 +1,23 @@ package de.hdm_stuttgart.battlearena.Controller; -public class MainMenuController { +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; +import javafx.stage.Stage; + +public class MainMenuController extends SceneLoader { + @FXML public BorderPane parent; + @FXML public Button exitButton; + + public void playScene() { + Pane pane = new Pane(loadScene("Play")); +// get(0) returns the first item from the getChildren() List + parent.setCenter(pane.getChildren().get(0)); + } + + public void exit() { + Stage stage = (Stage) exitButton.getScene().getWindow(); + stage.close(); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerController.java index e860d29af1d51d5ac383f7ab3e3120d600116aee..35ce9c8b5cc56b6df8b25bf434abd1236f674c95 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerController.java @@ -1,4 +1,24 @@ package de.hdm_stuttgart.battlearena.Controller; -public class MultiplayerController { +import javafx.fxml.FXML; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; + +public class MultiplayerController extends SceneLoader { + @FXML public BorderPane parent; + + public void multiplayerCreateScene() { + Pane pane = new Pane(loadScene("MultiplayerCreate")); + parent.setCenter(pane.getChildren().get(0)); + } + + public void multiplayerJoinScene() { + Pane pane = new Pane(loadScene("MultiplayerJoin")); + parent.setCenter(pane.getChildren().get(0)); + } + + public void playScene() { + Pane pane = new Pane(loadScene("Play")); + parent.setCenter(pane.getChildren().get(0)); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerCreateController.java index 860a75eb780e2ef88b8290edfb9835330f9e9536..aa497cc6332d0d89d55f8fb500b2aa1ca2f94bc6 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerCreateController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerCreateController.java @@ -1,4 +1,14 @@ package de.hdm_stuttgart.battlearena.Controller; -public class MultiplayerCreateController { +import javafx.fxml.FXML; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; + +public class MultiplayerCreateController extends SceneLoader { + @FXML public BorderPane parent; + + public void multiplayerScene() { + Pane pane = new Pane(loadScene("Multiplayer")); + parent.setCenter(pane.getChildren().get(0)); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerJoinController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerJoinController.java index 718bedee3c413dcf93e149897865b37c5aaef349..436363c2f056662f8901400cacc8c4f1c4ac1c3f 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerJoinController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MultiplayerJoinController.java @@ -1,4 +1,14 @@ package de.hdm_stuttgart.battlearena.Controller; -public class MultiplayerJoinController { +import javafx.fxml.FXML; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; + +public class MultiplayerJoinController extends SceneLoader{ + @FXML public BorderPane parent; + + public void multiplayerScene() { + Pane pane = new Pane(loadScene("Multiplayer")); + parent.setCenter(pane.getChildren().get(0)); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayController.java index 3b30742bb2d86409b65dff30ab66bbc19e049ab2..821792e87e11e56d2603a8607797015bf6a9bf4e 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayController.java @@ -1,4 +1,24 @@ package de.hdm_stuttgart.battlearena.Controller; -public class PlayController { +import javafx.fxml.FXML; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; + +public class PlayController extends SceneLoader { + @FXML public BorderPane parent; + + public void mainMenuScene() { + Pane pane = new Pane(loadScene("MainMenu")); + parent.setCenter(pane.getChildren().get(0)); + } + + public void localScene() { + Pane pane = new Pane(loadScene("LocalCreate")); + parent.setCenter(pane.getChildren().get(0)); + } + + public void multiplayerScene() { + Pane pane = new Pane(loadScene("Multiplayer")); + parent.setCenter(pane.getChildren().get(0)); + } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java b/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java index f2952c692546cd275924f9d299819d2f70c7a7bf..31ddc730fa788dd3c6b5a885bef2ee788d0918cf 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java @@ -27,6 +27,9 @@ public class Main extends Application { stage.setTitle("BattleArena"); stage.setScene(scene); + stage.minHeightProperty().setValue(400); + stage.minWidthProperty().setValue(600); + stage.setMaximized(true); stage.show(); log.debug("Project started successfully!"); diff --git a/src/main/resources/fxml/LocalCreate.fxml b/src/main/resources/fxml/LocalCreate.fxml index 962dfe3d6852b4f70c36ba1f57b7999d2541fb96..c52d798ec1531779f7cbbafb3cfa30829e4f6b49 100644 --- a/src/main/resources/fxml/LocalCreate.fxml +++ b/src/main/resources/fxml/LocalCreate.fxml @@ -11,7 +11,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Text?> -<BorderPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.LocalCreateController"> +<BorderPane fx:id="parent" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.LocalCreateController"> <center> <VBox alignment="TOP_CENTER" spacing="10.0" BorderPane.alignment="TOP_CENTER"> <children> @@ -76,7 +76,7 @@ </children> </HBox> <Button mnemonicParsing="false" text="Start" /> - <Button mnemonicParsing="false" text="Back"> + <Button mnemonicParsing="false" onAction="#playScene" text="Back"> <VBox.margin> <Insets bottom="50.0" /> </VBox.margin> diff --git a/src/main/resources/fxml/MainMenu.fxml b/src/main/resources/fxml/MainMenu.fxml index 1fcdec859d2b0f13b456956a091b9998f2ab290e..58e9be7cb65b4041d4be56f858f1cfdf84d5e385 100644 --- a/src/main/resources/fxml/MainMenu.fxml +++ b/src/main/resources/fxml/MainMenu.fxml @@ -6,19 +6,19 @@ <?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.VBox?> -<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MainMenuController"> +<BorderPane fx:id="parent" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MainMenuController"> <center> <VBox alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="100.0" spacing="50.0" BorderPane.alignment="CENTER"> <children> <Pane VBox.vgrow="ALWAYS" /> - <Button mnemonicParsing="false" text="Play" VBox.vgrow="ALWAYS"> + <Button mnemonicParsing="false" onAction="#playScene" text="Play" VBox.vgrow="ALWAYS"> <VBox.margin> <Insets top="20.0" /> </VBox.margin> </Button> <Button mnemonicParsing="false" text="Map Creator" VBox.vgrow="ALWAYS" /> <Button mnemonicParsing="false" text="Statistics" VBox.vgrow="ALWAYS" /> - <Button alignment="CENTER" mnemonicParsing="false" text="Exit" /> + <Button fx:id="exitButton" alignment="CENTER" mnemonicParsing="false" onAction="#exit" text="Exit" /> <Pane VBox.vgrow="ALWAYS" /> <Pane layoutX="10.0" layoutY="395.0" VBox.vgrow="ALWAYS" /> </children> diff --git a/src/main/resources/fxml/Multiplayer.fxml b/src/main/resources/fxml/Multiplayer.fxml index d3708a3cc7adf4eab4b3bdfc22631cf4ec45e26a..f23ded2bd0c75ded59f2be00dba243eac2059ff0 100644 --- a/src/main/resources/fxml/Multiplayer.fxml +++ b/src/main/resources/fxml/Multiplayer.fxml @@ -6,21 +6,21 @@ <?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.VBox?> -<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.PlayController"> +<BorderPane fx:id="parent" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MultiplayerController"> <center> <VBox alignment="TOP_CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="100.0" spacing="50.0" BorderPane.alignment="CENTER"> <children> <Pane maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS" /> - <Button mnemonicParsing="false" text="Create" VBox.vgrow="ALWAYS"> + <Button mnemonicParsing="false" onAction="#multiplayerCreateScene" text="Create" VBox.vgrow="ALWAYS"> <VBox.margin> <Insets top="20.0" /> </VBox.margin> </Button> - <Button mnemonicParsing="false" text="Join" VBox.vgrow="ALWAYS"> + <Button mnemonicParsing="false" onAction="#multiplayerJoinScene" text="Join" VBox.vgrow="ALWAYS"> <VBox.margin> <Insets bottom="50.0" /> </VBox.margin></Button> - <Button alignment="CENTER" mnemonicParsing="false" text="Back"> + <Button alignment="CENTER" mnemonicParsing="false" onAction="#playScene" text="Back"> <VBox.margin> <Insets /> </VBox.margin></Button> diff --git a/src/main/resources/fxml/MultiplayerCreate.fxml b/src/main/resources/fxml/MultiplayerCreate.fxml index 734dd97f58d822def3e38cee0b66adb91cd0abd7..d9bc89d6a0447c63ef800f264f85ccacf71be198 100644 --- a/src/main/resources/fxml/MultiplayerCreate.fxml +++ b/src/main/resources/fxml/MultiplayerCreate.fxml @@ -11,10 +11,11 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Text?> -<BorderPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MultiplayerCreateController"> +<BorderPane fx:id="parent" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MultiplayerCreateController"> <center> - <VBox alignment="TOP_CENTER" prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER"> + <VBox alignment="TOP_CENTER" prefHeight="200.0" prefWidth="100.0" spacing="20.0" BorderPane.alignment="CENTER"> <children> + <Pane VBox.vgrow="ALWAYS" /> <HBox alignment="TOP_CENTER" spacing="20.0"> <children> <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Text:" /> @@ -24,14 +25,12 @@ <Insets top="50.0" /> </VBox.margin> </HBox> - <Pane prefHeight="200.0" prefWidth="600.0" /> <HBox alignment="TOP_CENTER" layoutX="10.0" layoutY="10.0" maxWidth="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="213.0" spacing="20.0"> <children> <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Text:" /> <TextField /> </children> </HBox> - <Pane prefHeight="200.0" prefWidth="200.0" /> <HBox alignment="TOP_CENTER" layoutX="10.0" layoutY="110.0" spacing="10.0"> <children> <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Text:" /> @@ -39,7 +38,7 @@ <RadioButton mnemonicParsing="false" text="No" /> </children> </HBox> - <AnchorPane prefHeight="200.0" prefWidth="200.0"> + <AnchorPane minHeight="-Infinity" prefHeight="39.0" prefWidth="600.0"> <children> <VBox alignment="TOP_CENTER" layoutX="250.0" prefHeight="200.0" prefWidth="100.0" AnchorPane.leftAnchor="250.0" AnchorPane.rightAnchor="250.0"> <children> @@ -51,8 +50,10 @@ <Insets top="20.0" /> </VBox.margin> </AnchorPane> - <Button mnemonicParsing="false" text="Button" /> - <Button mnemonicParsing="false" text="Button" /> + <Button mnemonicParsing="false" text="Start" /> + <Button mnemonicParsing="false" onAction="#multiplayerScene" text="Back" /> + <Pane layoutX="10.0" layoutY="398.0" VBox.vgrow="ALWAYS" /> + <Pane layoutX="10.0" layoutY="393.0" VBox.vgrow="ALWAYS" /> </children> </VBox> </center> diff --git a/src/main/resources/fxml/MultiplayerJoin.fxml b/src/main/resources/fxml/MultiplayerJoin.fxml index 413935d56afb2316f98b82b113dde9d7fb3bb961..9126182f37fda0a232ec8270eba94debe56c57d5 100644 --- a/src/main/resources/fxml/MultiplayerJoin.fxml +++ b/src/main/resources/fxml/MultiplayerJoin.fxml @@ -7,7 +7,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Text?> -<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.PlayController"> +<BorderPane fx:id="parent" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MultiplayerJoinController"> <center> <VBox alignment="TOP_CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="100.0" spacing="50.0" BorderPane.alignment="CENTER"> <children> @@ -17,7 +17,7 @@ <Button mnemonicParsing="false" text="Connect" VBox.vgrow="ALWAYS" /> <Text strokeType="OUTSIDE" strokeWidth="0.0" text="[Error Message]" /> <Pane maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS" /> - <Button alignment="CENTER" mnemonicParsing="false" text="Back" /> + <Button alignment="CENTER" mnemonicParsing="false" onAction="#multiplayerScene" text="Back" /> <Pane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="20.0" VBox.vgrow="ALWAYS" /> </children> </VBox> diff --git a/src/main/resources/fxml/Play.fxml b/src/main/resources/fxml/Play.fxml index ffd2f0dd6e77e2d55ec9b564a9ab14c5482ff0ee..ccd2f64c395d76aa20b689a7c3f2606821df61c0 100644 --- a/src/main/resources/fxml/Play.fxml +++ b/src/main/resources/fxml/Play.fxml @@ -6,18 +6,18 @@ <?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.VBox?> -<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.PlayController"> +<BorderPane fx:id="parent" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.PlayController"> <center> <VBox alignment="TOP_CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="100.0" spacing="50.0" BorderPane.alignment="CENTER"> <children> <Pane VBox.vgrow="ALWAYS" /> - <Button mnemonicParsing="false" text="Local" VBox.vgrow="ALWAYS"> + <Button mnemonicParsing="false" onAction="#localScene" text="Local" VBox.vgrow="ALWAYS"> <VBox.margin> <Insets top="20.0" /> </VBox.margin> </Button> - <Button mnemonicParsing="false" text="Multiplayer" VBox.vgrow="ALWAYS" /> - <Button alignment="CENTER" mnemonicParsing="false" text="Back"> + <Button mnemonicParsing="false" onAction="#multiplayerScene" text="Multiplayer" VBox.vgrow="ALWAYS" /> + <Button alignment="CENTER" mnemonicParsing="false" onAction="#mainMenuScene" text="Back"> <VBox.margin> <Insets top="50.0" /> </VBox.margin></Button>