diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java new file mode 100644 index 0000000000000000000000000000000000000000..b725ed4ccd895b7b64f662003383a02d4c82f8b7 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateAccountController.java @@ -0,0 +1,59 @@ +package de.hdm_stuttgart.battlearena.Controller; + +import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Label; +import javafx.scene.control.RadioButton; +import javafx.scene.control.TextField; +import javafx.scene.control.ToggleGroup; +import javafx.scene.layout.VBox; + +import java.net.URL; +import java.util.ResourceBundle; + +public class CreateAccountController implements Initializable { + @FXML + private VBox parent; + @FXML + private RadioButton local, online; + @FXML + private ToggleGroup statistics; + @FXML + private TextField playerName, password; + @FXML + private Label errorMessage; + + SceneLoader sceneLoader = new SceneLoader(); + + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + getSelected(); + } + + private void getSelected() { + statistics.selectedToggleProperty().addListener((observableValue, toggle, t1) -> { + if (statistics.getSelectedToggle() != null) { + RadioButton selectedButton = (RadioButton) statistics.getSelectedToggle(); + String selected = selectedButton.getText(); + System.out.println(selected); + } + password.setEditable(!local.isSelected()); + }); + } + + private void switchScene(String name) { + parent.getChildren().clear(); + parent.getChildren().add(sceneLoader.loadScene(name)); + } + + @FXML + private void create() { + switchScene("MainMenu"); + } + + @FXML + private void back() { + switchScene("PlayerCreateScene"); + } +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java index b93944707f5455b80e99367483e7a3084f42b660..7c3bb06651c2a8d0dae958bb795ff86632c02814 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java @@ -1,5 +1,6 @@ package de.hdm_stuttgart.battlearena.Controller; +import de.hdm_stuttgart.battlearena.Controller.Utilities.LoadingPersistence; import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence; import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.StartupThread; import javafx.application.Platform; @@ -42,7 +43,7 @@ public class LoadingScreenController implements Initializable { "Did you know that Java is also an Island?", "This loading screen might never end.", "Get the BattleArena Ultimate-Edition for only 420,69€.", - "Press the left arrow key to move left.", + "To move left, press one of the keys on your keyboard.", "To use the gravity-gun, close the game and start Half Life 2.", "Buying this game was a good decision! (no refunds)." }; diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java new file mode 100644 index 0000000000000000000000000000000000000000..f4669526238ef9bf39715174449bc415df61f6b6 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java @@ -0,0 +1,30 @@ +package de.hdm_stuttgart.battlearena.Controller; + +import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader; +import javafx.fxml.FXML; +import javafx.scene.control.TextField; +import javafx.scene.layout.VBox; + +public class LoginController { + @FXML + private VBox parent; + @FXML + private TextField playerName, password; + + SceneLoader sceneLoader = new SceneLoader(); + + private void switchScene(String name) { + parent.getChildren().clear(); + parent.getChildren().add(sceneLoader.loadScene(name)); + } + + @FXML + private void login() { + switchScene("MainMenu"); + } + + @FXML + private void back() { + switchScene("PlayerCreateScene"); + } +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java index edd789143b03ff17f90dc1a39af02e59b876156b..7e9af037b2fafd7f4f4e41e59e8f779d04884c06 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java @@ -1,5 +1,6 @@ package de.hdm_stuttgart.battlearena.Controller; +import de.hdm_stuttgart.battlearena.Controller.Utilities.AccountExistsSingleton; import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer; import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton; import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader; @@ -44,7 +45,12 @@ public class MenuBorderPaneController implements Initializable { @Override public void initialize(URL url, ResourceBundle resourceBundle) { - center.getChildren().add(sceneLoader.loadScene("MainMenu")); + AccountExistsSingleton account = AccountExistsSingleton.getInstance(); + if (!account.getAccount()) { + center.getChildren().add(sceneLoader.loadScene("PlayerCreateScene")); + } else { + center.getChildren().add(sceneLoader.loadScene("MainMenu")); + } // set size for rusty gear image depending on screen resolution final double imageWidth = screen.getWidth() / 6; imgRight.setFitWidth(imageWidth); diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlaceholderController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlaceholderController.java new file mode 100644 index 0000000000000000000000000000000000000000..a018d9e82ae12e61b22762484397f479597ff0c1 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlaceholderController.java @@ -0,0 +1,51 @@ +package de.hdm_stuttgart.battlearena.Controller; + +import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.fxml.Initializable; +import javafx.scene.control.Button; +import javafx.scene.layout.BorderPane; +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; +import javafx.scene.media.MediaView; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.Objects; +import java.util.ResourceBundle; + +public class PlaceholderController implements Initializable { + @FXML + private BorderPane parent; + @FXML + private MediaView mediaView; + @FXML + private Button button; + private MediaPlayer mediaPlayer, musicPlayer; + + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + File file = new File("src/main/resources/videos/construction.mp4"); + mediaPlayer = new CreateMediaPlayer().getMediaPlayer(mediaView, file, true, parent); + mediaView.setMediaPlayer(mediaPlayer); + mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE); + parent.setStyle("-fx-font-size: 50; -fx-text-fill: white; -fx-font-family: 'Arial Black'"); + + Media musicMedia = new Media(new File("src/main/resources/sound/music/constructionJazz.mp3").toURI().toString()); + musicPlayer = new MediaPlayer(musicMedia); + musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); + musicPlayer.setAutoPlay(true); + + button.setOnMouseClicked(mouseEvent -> { + try { + mediaPlayer.dispose(); + musicPlayer.dispose(); + parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml")))); + } catch (IOException e) { + throw new RuntimeException(); + } + }); + } +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java index 68dfd4029aad7452c5d19d82fdfcaec3f0e8435e..56f73045145a2c36b567f177e7423cd86f0bcd07 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java @@ -1,51 +1,34 @@ package de.hdm_stuttgart.battlearena.Controller; -import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer; +import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader; import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.fxml.Initializable; -import javafx.scene.control.Button; -import javafx.scene.layout.BorderPane; -import javafx.scene.media.Media; -import javafx.scene.media.MediaPlayer; -import javafx.scene.media.MediaView; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.Objects; -import java.util.ResourceBundle; - -public class PlayerCreateController implements Initializable { - @FXML - private BorderPane parent; - @FXML - private MediaView mediaView; +public class PlayerCreateController { @FXML - private Button button; - private MediaPlayer mediaPlayer, musicPlayer; + private VBox parent; - @Override - public void initialize(URL url, ResourceBundle resourceBundle) { - File file = new File("src/main/resources/videos/construction.mp4"); - mediaPlayer = new CreateMediaPlayer().getMediaPlayer(mediaView, file, true, parent); - mediaView.setMediaPlayer(mediaPlayer); - mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE); - parent.setStyle("-fx-font-size: 50; -fx-text-fill: white; -fx-font-family: 'Arial Black'"); + SceneLoader sceneLoader = new SceneLoader(); - Media musicMedia = new Media(new File("src/main/resources/sound/music/constructionJazz.mp3").toURI().toString()); - musicPlayer = new MediaPlayer(musicMedia); - musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); - musicPlayer.setAutoPlay(true); + private void switchScene(String name) { + parent.getChildren().clear(); + parent.getChildren().add(sceneLoader.loadScene(name)); + } - button.setOnMouseClicked(mouseEvent -> { - try { - mediaPlayer.dispose(); - musicPlayer.dispose(); - parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml")))); - } catch (IOException e) { - throw new RuntimeException(); - } - }); + @FXML + private void createScene() { + switchScene("CreateAccount"); + } + + @FXML + private void loginScene() { + switchScene("Login"); + } + + @FXML + private void exit() { + Stage stage = (Stage) parent.getScene().getWindow(); + stage.close(); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java index a04eb1c6d84b615f3eff95b33d86485cb0ef5b51..836c9cf9df4f8f17b7633fac1c0867d9b00bac02 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java @@ -38,8 +38,17 @@ public class SettingsController implements Initializable { @FXML private void backButton() { + switchScene("MainMenu"); + } + + @FXML + private void account() { + switchScene("PlayerCreateScene"); + } + + private void switchScene(String name) { parent.getChildren().clear(); - parent.getChildren().add(sceneLoader.loadScene("MainMenu")); + parent.getChildren().add(sceneLoader.loadScene(name)); } private void setMusicVolume() { diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/AccountExistsSingleton.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/AccountExistsSingleton.java new file mode 100644 index 0000000000000000000000000000000000000000..3e7db2d67a673cd6fb7c5008019c19d5f4309531 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/AccountExistsSingleton.java @@ -0,0 +1,21 @@ +package de.hdm_stuttgart.battlearena.Controller.Utilities; + +public class AccountExistsSingleton { + private static final AccountExistsSingleton instance = new AccountExistsSingleton(); + + private boolean accountExists; + + private AccountExistsSingleton() {} + + public static AccountExistsSingleton getInstance() { + return instance; + } + + public boolean getAccount() { + return accountExists; + } + + public void setAccount(boolean accountExists) { + this.accountExists = accountExists; + } +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingPersistence.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/LoadingPersistence.java similarity index 61% rename from src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingPersistence.java rename to src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/LoadingPersistence.java index e3a98f698f6c9dec6e854bced9736bac3a7f973f..ad6b6241aac1bc9c99e52674916d5de654506617 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingPersistence.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/Utilities/LoadingPersistence.java @@ -1,4 +1,4 @@ -package de.hdm_stuttgart.battlearena.Controller; +package de.hdm_stuttgart.battlearena.Controller.Utilities; import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.DatabaseException; import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence; @@ -16,19 +16,18 @@ public class LoadingPersistence { private static final Logger log = LogManager.getLogger(Persistence.class); public boolean loadingData(BorderPane parent, boolean statsLoaded, Thread tipsThread) throws IOException { - boolean isStartUp = true, noAccount = false; + boolean isStartUp = true, accountExists = true; while (isStartUp) { try { persistence.loadPlayerAccount(); persistence.verifyPlayerAccount(); isStartUp = false; } catch (DatabaseException e) { - noAccount = true; + accountExists = false; + AccountExistsSingleton.getInstance().setAccount(accountExists); + break; // TODO: reset player account if account fails to load in loadPlayerAccount() } - if (noAccount) { - parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml")))); - } } while (!statsLoaded) { // while loop because Martin said so @@ -39,14 +38,16 @@ public class LoadingPersistence { log.error(e); } } - Platform.runLater(() -> tipsThread.interrupt()); - Platform.runLater(() -> { - try { - parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml")))); - } catch (IOException e) { - log.error("MenuBorderPane.fxml error ", e); - } - }); + AccountExistsSingleton.getInstance().setAccount(accountExists); + Platform.runLater(tipsThread::interrupt); + parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml")))); +// Platform.runLater(() -> { +// try { +// parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml")))); +// } catch (IOException e) { +// log.error("MenuBorderPane.fxml error ", e); +// } +// }); return statsLoaded; } } 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 62bcd34e24b51c14f1bfa0faf447b3fadf6c1eb6..58444069340625fa71378edd123d1171fe6fd057 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Main/Main.java @@ -29,6 +29,8 @@ public class Main extends Application { InputHandler inputHandler = InputHandler.getInstance(); + SoundManager soundManager = new SoundManager(); + public static void main(String[] args) { launch(args); } @@ -40,7 +42,7 @@ public class Main extends Application { Font.loadFont(getClass().getResourceAsStream("/fonts/StarshipShadow.ttf"), 50); Font.loadFont(getClass().getResourceAsStream("/fonts/AmaticSC-Bold.ttf"), 50); - Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/Intro.fxml"))); + Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/LoadingScreen.fxml"))); Scene scene = new Scene(root); @@ -59,17 +61,12 @@ public class Main extends Application { scene.getStylesheets().add(Objects.requireNonNull(this.getClass().getResource("/styles/style.css")).toExternalForm()); stage.setScene(scene); - - SoundManager soundManager = new SoundManager(); - stage.setOnCloseRequest(event -> { if (soundManager != null) { soundManager.stopMusic(); } }); - soundManager.playMusic(MusicType.GAME); - stage.show(); log.debug("Project started successfully!"); diff --git a/src/main/resources/fxml/CreateAccount.fxml b/src/main/resources/fxml/CreateAccount.fxml new file mode 100644 index 0000000000000000000000000000000000000000..990585a6c7c9bf5d734e37910636a0c34ac926a7 --- /dev/null +++ b/src/main/resources/fxml/CreateAccount.fxml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.RadioButton?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.control.ToggleGroup?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.Pane?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Text?> + +<VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="20.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.CreateAccountController"> + <children> + <Pane VBox.vgrow="ALWAYS" /> + <VBox alignment="CENTER" VBox.vgrow="ALWAYS"> + <children> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Tracking statistics:" /> + <HBox alignment="CENTER" spacing="30.0" VBox.vgrow="ALWAYS"> + <children> + <RadioButton fx:id="local" mnemonicParsing="false" text="Local"> + <toggleGroup> + <ToggleGroup fx:id="statistics" /> + </toggleGroup> + </RadioButton> + <RadioButton fx:id="online" mnemonicParsing="false" text="Online" toggleGroup="$statistics" /> + </children> + </HBox> + </children> + </VBox> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Player Name:" /> + <TextField fx:id="playerName" alignment="CENTER" /> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Password:" /> + <TextField fx:id="password" alignment="CENTER" /> + <Label fx:id="errorMessage" /> + <Button mnemonicParsing="false" onAction="#create" text="Create" /> + <Button mnemonicParsing="false" onAction="#back" text="Back" /> + <Pane VBox.vgrow="ALWAYS" /> + </children> +</VBox> diff --git a/src/main/resources/fxml/Login.fxml b/src/main/resources/fxml/Login.fxml new file mode 100644 index 0000000000000000000000000000000000000000..a6342678432851059dc393d88d6489b8af71c0ac --- /dev/null +++ b/src/main/resources/fxml/Login.fxml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.Pane?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Text?> + +<VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="20.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.LoginController"> + <children> + <Pane VBox.vgrow="ALWAYS" /> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Login with existing online account" /> + <Pane VBox.vgrow="ALWAYS" /> + <Pane VBox.vgrow="ALWAYS" /> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Player Name:" /> + <TextField fx:id="playerName" alignment="CENTER" /> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Password:" /> + <TextField fx:id="password" alignment="CENTER" /> + <Label text="Error Message" /> + <Button mnemonicParsing="false" onAction="#login" text="Login" /> + <Button mnemonicParsing="false" onAction="#back" text="Back" /> + <Pane VBox.vgrow="ALWAYS" /> + </children> +</VBox> diff --git a/src/main/resources/fxml/Placeholder.fxml b/src/main/resources/fxml/Placeholder.fxml new file mode 100644 index 0000000000000000000000000000000000000000..5b08cde3dfdf168d0e09cc1f005c3f62ac8e09c5 --- /dev/null +++ b/src/main/resources/fxml/Placeholder.fxml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.layout.BorderPane?> +<?import javafx.scene.layout.StackPane?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.media.MediaView?> +<?import javafx.scene.text.Text?> + +<BorderPane fx:id="parent" 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.PlaceholderController"> + <center> + <StackPane BorderPane.alignment="CENTER"> + <children> + <MediaView fx:id="mediaView" fitHeight="200.0" fitWidth="200.0" /> + <VBox alignment="CENTER" prefHeight="200.0" prefWidth="100.0" spacing="10.0"> + <children> + <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="WELCOME!" /> + <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="This page is still under construction" /> + <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="please have some patience" /> + <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Thank you" /> + <Button fx:id="button" mnemonicParsing="false" text="Get me out of here" /> + </children> + </VBox> + </children> + </StackPane> + </center> +</BorderPane> diff --git a/src/main/resources/fxml/PlayerCreateScene.fxml b/src/main/resources/fxml/PlayerCreateScene.fxml index 5200c6495466b6bf62772664a6f3a093ac2f5453..9a7e5e347bd49fc7a87467f5700922cbf3fdb937 100644 --- a/src/main/resources/fxml/PlayerCreateScene.fxml +++ b/src/main/resources/fxml/PlayerCreateScene.fxml @@ -1,27 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> -<?import javafx.scene.layout.BorderPane?> -<?import javafx.scene.layout.StackPane?> +<?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.VBox?> -<?import javafx.scene.media.MediaView?> -<?import javafx.scene.text.Text?> -<BorderPane fx:id="parent" 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.PlayerCreateController"> - <center> - <StackPane BorderPane.alignment="CENTER"> - <children> - <MediaView fx:id="mediaView" fitHeight="200.0" fitWidth="200.0" /> - <VBox alignment="CENTER" prefHeight="200.0" prefWidth="100.0" spacing="10.0"> - <children> - <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="WELCOME!" /> - <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="This page is still under construction" /> - <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="please have some patience" /> - <Text fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Thank you" /> - <Button fx:id="button" mnemonicParsing="false" text="Get me out of here" /> - </children> - </VBox> - </children> - </StackPane> - </center> -</BorderPane> + +<VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="50.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.PlayerCreateController"> + <children> + <Pane prefHeight="200.0" prefWidth="200.0" /> + <Button mnemonicParsing="false" onAction="#createScene" text="Create Account" /> + <Button mnemonicParsing="false" onAction="#loginScene" text="Login" /> + <Pane prefHeight="200.0" prefWidth="200.0" /> + <Button mnemonicParsing="false" onAction="#exit" text="Exit" /> + <Pane prefHeight="200.0" prefWidth="200.0" /> + </children> +</VBox> diff --git a/src/main/resources/fxml/Settings.fxml b/src/main/resources/fxml/Settings.fxml index 7b8950fc2664c2e1e041ce2d05b7b46986f01d64..3f84b3167228690e174a053e4d5ba4128fc44e72 100644 --- a/src/main/resources/fxml/Settings.fxml +++ b/src/main/resources/fxml/Settings.fxml @@ -28,6 +28,7 @@ </VBox> </children> </HBox> + <Button mnemonicParsing="false" onAction="#account" text="Account" /> <Button mnemonicParsing="false" onAction="#creditScene" text="Credits" /> <Button mnemonicParsing="false" onAction="#backButton" text="Back" /> </children> diff --git a/src/main/resources/player/appSettings.json b/src/main/resources/player/appSettings.json index ec5bc62a909f2065d81be4cfd6c494b9e10715fb..6e590e0b3558f801e067de65522b508a8ae3b557 100644 --- a/src/main/resources/player/appSettings.json +++ b/src/main/resources/player/appSettings.json @@ -1,4 +1,4 @@ { - "sfxVolume": 50, - "musicVolume": 0 + "sfxVolume": 100, + "musicVolume": 13 } \ No newline at end of file diff --git a/src/main/resources/styles/style.css b/src/main/resources/styles/style.css index e5540574784d91fba16b9c3f1c4e9aa2f8e94b32..3fb5bc5d84a33bcb3615f94a6a6fedf8d6373417 100644 --- a/src/main/resources/styles/style.css +++ b/src/main/resources/styles/style.css @@ -23,6 +23,15 @@ -fx-background-color: radial-gradient(focus-distance 0% , center 50% 50% , radius 45% , #a31c31, #542b27); } +.text-field { + -fx-background-color: transparent; + -fx-text-fill: black; + -fx-border-color: -fx-dark-brown; + -fx-border-width: 0 0 2 0; + -fx-prompt-text-fill: rgba(0, 0, 0, 0.5); +} + + #mainMenu{ -fx-background-image: url("../textures/images/background.png"); -fx-background-size: cover;