diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameController.java index ae52485..3e71904 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameController.java @@ -5,17 +5,17 @@ import javafx.scene.control.Label; import javafx.scene.layout.VBox; /** - * Controller für die Casino-Spielfläche. + * Controller for the casino gaming area. * - *

Verantwortlich für: - die Darstellung des Pokertisches und der Spieleroberfläche, - die - * Verarbeitung von Benutzereingaben, - die Schnittstelle zur GameEngine und zum Netzwerkprotokoll. + *

Responsible for: - the display of the poker table and the player interface, - the processing + * of user input, - the interface to the game engine and the network protocol. * - *

Hinweise: - Die Methode `onTableClick()` dient aktuell nur als Test-Logik. Sie ist ggf. nicht - * mehr funktionsfähig und wird zukünftig durch die finale Spielinteraktion ersetzt. + *

Notes: - The `onTableClick()` method currently serves only as test logic. It may no longer be + * functional and will be replaced by the final game interaction in the future. */ public class CasinoGameController { - /** Standardkonstruktor. Wird von FXML verwendet. */ + /** Standard constructor. Used by FXML. */ public CasinoGameController() { // default constructor for FXML } @@ -23,13 +23,13 @@ public class CasinoGameController { @FXML private Label welcomeText; @FXML private VBox casinoTable; - // TODO: Test-Logik: wird durch echte Spielinteraktionen ersetzt, - // sobald die GameEngine fertig ist + // TODO: Test logic: will be replaced by real game interactions, + // once the game engine is finished /** - * Temporäre Test-Methode, die bei Klick auf den Tisch eine Platzhalteraktion ausführt. + * Temporary test method that performs a placeholder action when the table is clicked. * - *

Wird in der finalen Implementierung durch die Spiel-Logik ersetzt. + *

In the final implementation, this will be replaced by the game logic. */ @FXML public void onTableClick() { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameUI.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameUI.java index 4198549..2e91921 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameUI.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/CasinoGameUI.java @@ -1,4 +1,3 @@ - package ch.unibas.dmi.dbis.cs108.casono.client.ui.gameui; import java.io.IOException; @@ -8,32 +7,17 @@ import javafx.scene.Scene; import javafx.stage.Stage; /** - * Main class for the casino game UI. + * Main class for the Casono Game UI. * - *

Starts the JavaFX application, loads the graphical interface from the FXML file, - * and initializes the main stage for the game. + *

Starts the JavaFX application, loads the graphical user interface from the FXML file, and + * initializes the main stage for the game. * - *

Responsibilities: - * - Loads the FXML interface "/ui-structure/Casinogameui.fxml". - * - Loads the application icon from "/images/logoinverted.png". - * - Starts the application in fullscreen mode. + *

Tasks: - Loads the FXML interface "/ui-structure/Casinogameui.fxml". - Loads the application + * icon from "/images/logoinverted.png". - Starts the application in full-screen mode. */ -import ch.unibas.dmi.dbis.cs108.casono.client.network.ClientService; - public class CasinoGameUI extends Application { - // Static field for ClientService (workaround for JavaFX Application launch) - private static ClientService staticClientService; - - public static void setClientService(ClientService clientService) { - staticClientService = clientService; - } - - public static ClientService getClientService() { - return staticClientService; - } - - /** Default no-arg constructor. */ + /** default constructor */ public CasinoGameUI() { // default no-arg constructor } @@ -49,7 +33,8 @@ public class CasinoGameUI extends Application { */ @Override public void start(Stage stage) throws IOException { - FXMLLoader fxmlLoader = new FXMLLoader(CasinoGameUI.class.getResource("/ui-structure/Casinogameui.fxml")); + FXMLLoader fxmlLoader = + new FXMLLoader(CasinoGameUI.class.getResource("/ui-structure/Casinogameui.fxml")); Scene scene = new Scene(fxmlLoader.load(), DEFAULT_WIDTH, DEFAULT_HEIGHT); stage.setTitle("Casono (GAME)"); @@ -61,7 +46,7 @@ public class CasinoGameUI extends Application { } /** - * Entry point of the application. + * Starting point of the application. * * @param args Command line arguments. */ diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/CasinoBrowserController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/CasinoBrowserController.java index 03c4644..72b0730 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/CasinoBrowserController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/CasinoBrowserController.java @@ -31,28 +31,27 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** - * Experimenteller integrierter Browser für Casono. + * Experimental embedded browser for Casono. * - *

Diese Klasse implementiert einen einfachen eingebetteten Webbrowser auf Basis von {@link - * javafx.scene.web.WebView}. Der Browser dient primär als Hilfswerkzeug innerhalb des Spiels, um - * externe Inhalte wie Webseiten oder Videos anzuzeigen. + *

This class implements a simple embedded web browser based on {@link javafx.scene.web.WebView}. + * The browser primarily serves as a utility within the game to display external content such as web + * pages or videos. * - *

Status Der Browser befindet sich derzeit in einer experimentellen Phase. Einige - * Sicherheitsmechanismen basieren auf experimentellen KI-gestützten Empfehlungen und können sich in - * zukünftigen Versionen noch ändern. + *

Status The browser is currently in an experimental phase. Some security mechanisms are based + * on experimental AI-driven recommendations and may change in future versions. * - *

Zweck Der Browser wird aktuell experimentell genutzt, um: Pokerregeln direkt im Spiel zu - * erklären Hilfeseiten oder Dokumentationen anzuzeigen Videos (z.B. Tutorials oder Erklärungen) - * über Plattformen wie YouTube abzuspielen + *

Purpose The browser is currently being used experimentally to: Explain poker rules directly + * within the game Display help pages or documentation Play videos (e.g., tutorials or explanations) + * via platforms such as YouTube * - *

Sicherheitsmechanismen Da externe Webseiten geladen werden können, wurden einige grundlegende - * Schutzmaßnahmen integriert: - HTTPS-Zwang für Webseiten - Whitelist für bekannte Domains - - * Warnung bei unbekannten Webseiten - JavaScript standardmäßig deaktiviert (man kann es jedoch für - * Google etc. einschalten) - Popup-Blocker - Automatische Cookie-Löschung beim Schließen + *

Security Mechanisms Since external websites can be loaded, some basic protective measures have + * been integrated: - Mandatory HTTPS for websites - Whitelist for known domains - Warning for + * unknown websites - JavaScript disabled by default (but can be enabled for Google, etc.) - Pop-up + * blocker - Automatic cookie deletion upon closing */ public class CasinoBrowserController { - /** Standardkonstruktor. Initialisiert den CasinoBrowserController. */ + /** Default constructor. Initializes the CasinoBrowserController. */ public CasinoBrowserController() { // Intentionally left blank; controller initialization is FXML-driven. } @@ -101,7 +100,7 @@ public class CasinoBrowserController { private static boolean javascriptEnabled = false; - /** Löscht alle gespeicherten Cookies der aktuellen Browser-Sitzung. */ + /** Deletes all cookies stored during the current browser session. */ private static void clearCookies() { try { COOKIE_MANAGER.getCookieStore().removeAll(); @@ -110,12 +109,12 @@ public class CasinoBrowserController { } /** - * Öffnet ein neues Browserfenster und lädt eine angegebene Webseite. + * Opens a new browser window and loads a specified webpage. * - *

Falls die Webseite nicht zur Liste vertrauenswürdiger Domains gehört, wird der Benutzer - * gefragt, ob die Seite dennoch geladen werden soll. + *

If the webpage is not on the list of trusted domains, the user will be asked whether the + * page should be loaded anyway. * - * @param url die Startadresse der Webseite, die geladen werden soll + * @param url the URL of the webpage to be loaded */ public static void open(String url) { Platform.runLater( @@ -182,10 +181,10 @@ public class CasinoBrowserController { } /** - * WebView Container + * WebView container * - * @param webView WebView Inhalt - * @return StackPane Container + * @param webView WebView content + * @return StackPane container */ public static StackPane createWebContainer(WebView webView) { StackPane webContainer = new StackPane(webView); @@ -198,7 +197,7 @@ public class CasinoBrowserController { /** * Popup Blocker * - * @param engine WebEngine nutzen + * @param engine Use WebEngine */ public static void configurePopupBlocker(WebEngine engine) { engine.setCreatePopupHandler( @@ -212,8 +211,8 @@ public class CasinoBrowserController { var stream = CasinoBrowserController.class.getResourceAsStream(LOGO_PATH); Image logo = new Image(stream); - // Variable 'streamM' abgekürzt, um das 100-Zeichen-Limit (LineLength) - // einzuhalten + // Variable ‘streamM’ abbreviated to comply with the 100-character + // limit (LineLength) var streamM = CasinoBrowserController.class.getResourceAsStream(LOGO_PATH_MAIN); Image logomain = new Image(streamM); @@ -232,7 +231,7 @@ public class CasinoBrowserController { alert.setGraphic(logoView); } } catch (Exception e) { - LOGGER.error("Logo konnte nicht geladen werden"); + LOGGER.error("The logo could not be loaded"); } alert.showAndWait(); @@ -241,9 +240,9 @@ public class CasinoBrowserController { } /** - * Logos laden + * Load logos * - * @param stage Fenster Stage + * @param stage Window Stage * @return ImageView Logo */ private static ImageView loadLogos(Stage stage) { @@ -253,8 +252,7 @@ public class CasinoBrowserController { var stream = CasinoBrowserController.class.getResourceAsStream(LOGO_PATH); Image logo = new Image(stream); - // Variable 'streamM' abgekürzt, um das 100-Zeichen-Limit (LineLength) - // einzuhalten + // Variable ‘streamM’ abbreviated to comply with the 100-character limit (LineLength) var streamM = CasinoBrowserController.class.getResourceAsStream(LOGO_PATH_MAIN); Image logomain = new Image(streamM); @@ -268,17 +266,17 @@ public class CasinoBrowserController { browserLogo.setPreserveRatio(true); } } catch (Exception e) { - LOGGER.error("Logo konnte nicht geladen werden"); + LOGGER.error("The logo could not be loaded"); } return browserLogo; } /** - * URL Feld + * URL field * * @param url Start URL - * @return TextField Eingabe + * @return TextField input */ public static TextField createUrlField(String url) { TextField urlField = new TextField(url); @@ -289,12 +287,12 @@ public class CasinoBrowserController { } /** - * Sicherheits Label + * Security Label * - * @return Label Anzeige + * @return Label display */ public static Label createSecurityLabel() { - Label securityLabel = new Label("SICHER"); + Label securityLabel = new Label("SAFE"); securityLabel.getStyleClass().add("security-label"); return securityLabel; @@ -303,8 +301,8 @@ public class CasinoBrowserController { /** * JS Toggle * - * @param engine WebEngine nutzen - * @return Button Umschalten + * @param engine Use WebEngine + * @return Toggle button */ public static Button createJsToggle(WebEngine engine) { Button jsToggle = new Button("JS EINSCHALTEN"); @@ -316,7 +314,7 @@ public class CasinoBrowserController { engine.setJavaScriptEnabled(javascriptEnabled); if (javascriptEnabled) { - jsToggle.setText("JS AUSSCHALTEN"); + jsToggle.setText("JS TURN OFF"); jsToggle.getStyleClass().removeAll("red-button"); jsToggle.getStyleClass().add("yellow-button"); @@ -331,10 +329,10 @@ public class CasinoBrowserController { } /** - * Zurück Button + * Back Button * - * @param engine WebEngine nutzen - * @return Button Zurück + * @param engine Use WebEngine + * @return Back button */ public static Button createBackButton(WebEngine engine) { Button backBtn = new Button("<"); @@ -350,10 +348,10 @@ public class CasinoBrowserController { } /** - * Vorwärts Button + * Forward Button * - * @param engine WebEngine nutzen - * @return Button Vorwärts + * @param engine Use WebEngine + * @return Forward button */ public static Button createForwardButton(WebEngine engine) { Button fwdBtn = new Button(">"); @@ -373,8 +371,8 @@ public class CasinoBrowserController { /** * Reload Button * - * @param engine WebEngine nutzen - * @return Button Reload + * @param engine Use WebEngine + * @return Reload button */ public static Button createReloadButton(WebEngine engine) { Button reloadBtn = new Button("⟳"); @@ -386,9 +384,9 @@ public class CasinoBrowserController { /** * Close Button * - * @param stage Fenster Stage - * @param webView WebView Inhalt - * @return Button Schließen + * @param stage Window stage + * @param webView WebView content + * @return Close button */ public static Button createCloseButton(Stage stage, WebView webView) { Button closeBtn = new Button("X"); @@ -406,9 +404,9 @@ public class CasinoBrowserController { /** * URL Events * - * @param engine WebEngine nutzen - * @param urlField URL Textfeld - * @param securityLabel Sicherheits Label + * @param engine Use WebEngine + * @param urlField URL text field + * @param securityLabel Security label */ public static void configureUrlEvents( WebEngine engine, TextField urlField, Label securityLabel) { @@ -417,11 +415,11 @@ public class CasinoBrowserController { } /** - * Scene erstellen + * Create a scene * * @param taskbar Taskbar HBox - * @param webContainer Web Container - * @return Scene Fenster + * @param webContainer Web container + * @return Scene window */ public static Scene createScene(HBox taskbar, StackPane webContainer) { VBox root = new VBox(VBOX_SPACING, taskbar, webContainer); @@ -442,8 +440,8 @@ public class CasinoBrowserController { /** * Key Events * - * @param scene Scene Fenster - * @param engine WebEngine nutzen + * @param scene Scene window + * @param engine Use WebEngine */ public static void configureKeyEvents(Scene scene, WebEngine engine) { scene.setOnKeyPressed( @@ -455,18 +453,18 @@ public class CasinoBrowserController { } /** - * Lädt eine URL in den Browser, nachdem grundlegende Sicherheitsprüfungen durchgeführt wurden. + * Loads a URL in the browser after performing basic security checks. * - *

Vor dem Laden einer Seite werden folgende Prüfungen durchgeführt: - Überprüfung des - * Protokolls (nur HTTPS erlaubt) - Überprüfung der Domain gegen eine Whitelist - Schutz vor - * Domain-Spoofing (Domain-Vortäuschung) + *

Before loading a page, the following checks are performed: - Verification of the protocol + * (only HTTPS allowed) - Verification of the domain against a whitelist - Protection against + * domain spoofing * - *

Falls eine Domain nicht als vertrauenswürdig eingestuft wird, muss der Benutzer - * bestätigen, dass die Seite dennoch geöffnet werden darf. + *

If a domain is not classified as trustworthy, the user must confirm that the page may + * still be opened. * - * @param engine der WebEngine-Renderer des Browsers - * @param url die zu ladende Webadresse - * @param securityLabel Label zur Anzeige des aktuellen Sicherheitsstatus + * @param engine the browser's WebEngine renderer + * @param url the web address to be loaded + * @param securityLabel label for displaying the current security status */ private static void loadUrlSafely(WebEngine engine, String url, Label securityLabel) { try { @@ -476,9 +474,9 @@ public class CasinoBrowserController { URI uri = new URI(url); - // HTTPS Pflicht + // HTTPS required if (!"https".equalsIgnoreCase(uri.getScheme())) { - securityLabel.setText("BLOCKIERT"); + securityLabel.setText("BLOCKED"); return; } @@ -488,19 +486,19 @@ public class CasinoBrowserController { return; } - // Sicherer Domain Check + // Secure Domain Check boolean trusted = TRUSTED_DOMAINS.stream() .anyMatch(domain -> host.equals(domain) || host.endsWith("." + domain)); if (!trusted) { if (!showUnknownWebsiteAlert(host)) { - securityLabel.setText("BLOCKIERT"); + securityLabel.setText("BLOCKED"); return; } securityLabel.setText("UNBEKANNT"); } else { - securityLabel.setText("SICHER"); + securityLabel.setText("SAFE"); } engine.load(uri.toString()); } catch (Exception e) { @@ -509,20 +507,20 @@ public class CasinoBrowserController { } /** - * Zeigt Warnung an. + * Displays a warning. * - * @param host Website Host - * @return OK gedrückt + * @param host Website host + * @return OK pressed */ private static boolean showUnknownWebsiteAlert(String host) { Alert alert = new Alert(Alert.AlertType.CONFIRMATION); - alert.setTitle("Unbekannte Website"); - alert.setHeaderText("Diese Website ist nicht bekannt"); + alert.setTitle("Unknown website"); + alert.setHeaderText("This website is unknown"); String content = host - + "\n\nDiese Seite ist nicht vom Casono Browser verifiziert.\n" - + "Möchten Sie sie trotzdem öffnen?"; + + "\n\nThis site has not been verified by the Casono browser.\n" + + "Do you still want to open it?"; alert.setContentText(content); var stream = CasinoBrowserController.class.getResourceAsStream(LOGO_PATH); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java index b446f3a..233cd98 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ui/gameui/gameuicomponents/TaskbarController.java @@ -11,14 +11,14 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** - * Controller für die interaktive Taskleiste innerhalb der Poker-UI. + * Controller for the interactive taskbar within the poker UI. * - *

Verantwortlich für: - Drag-and-Drop-Verschieben der Taskleiste, - Eingabe und Verwaltung von - * Spieleinsätzen, - Steuerung allgemeiner Menüfunktionen wie Exit. + *

Responsible for: - Drag-and-drop movement of the taskbar, - Input and management of game + * stakes, - Control of general menu functions such as Exit. */ public class TaskbarController { - /** Standardkonstruktor. Wird von FXML verwendet. */ + /** Standard constructor. Used by FXML. */ public TaskbarController() { // default constructor for FXML } @@ -36,10 +36,10 @@ public class TaskbarController { private static final int CREDIT_STEP = 5; /** - * Wird aufgerufen, wenn die Taskleiste mit der Maus gedrückt wird. Speichert die relative - * Position, um später korrekt zu verschieben. + * Called when the taskbar is clicked with the mouse. Saves the relative position for later, + * correct repositioning. * - * @param event Das Mausereignis + * @param event The mouse event */ @FXML private void onTaskbarPressed(MouseEvent event) { @@ -48,11 +48,10 @@ public class TaskbarController { } /** - * Wird aufgerufen, während die Taskleiste mit der Maus gezogen wird. Aktualisiert die Position - * und skaliert die Taskleiste leicht zur visuellen Rückmeldung. + * Called while dragging the taskbar with the mouse. Updates the position and slightly scales + * the taskbar for visual feedback. * - *

TODO: Es muss noch gefixt werden, dass die Taskleiste nicht aus dem Fenster verschwinden - * kann. + *

TODO: It still needs to be fixed that the taskbar cannot disappear out of the window. * * @param event Das Mausereignis */ @@ -66,10 +65,10 @@ public class TaskbarController { } /** - * Wird aufgerufen, wenn die Maus über der Taskleiste losgelassen wird. Setzt die Skalierung der - * Taskleiste wieder auf Normalgröße. + * Called when the mouse cursor is released over the taskbar. Resets the taskbar scaling to + * normal size. * - * @param event Das Mausereignis + * @param event The mouse event */ @FXML private void onTaskbarReleased(MouseEvent event) { @@ -78,9 +77,9 @@ public class TaskbarController { } /** - * Wird aufgerufen, wenn im Textfeld die Enter-Taste gedrückt wird. + * Called up when the Enter key is pressed in the text field. * - * @param event Das Tastaturereignis + * @param event The keyboard event */ @FXML private void onInputSubmitted(KeyEvent event) { @@ -90,8 +89,8 @@ public class TaskbarController { } /** - * Wird aufgerufen, wenn der Submit-Button in der Taskleiste gedrückt wird. Löst die - * Verarbeitung des Einsatzes aus. + * Called when the submit button in the taskbar is pressed. Triggers the processing of the + * deployment. */ @FXML private void onInputSubmittedAction() { @@ -106,7 +105,7 @@ public class TaskbarController { javafx.stage.Stage currentStage = (javafx.stage.Stage) taskbar.getScene().getWindow(); currentStage.close(); - // Lobby-UI starten + // Start lobby UI try { new Casinomainui().start(new javafx.stage.Stage()); } catch (Exception e) { @@ -116,9 +115,9 @@ public class TaskbarController { } /** - * Verarbeitet den im Textfeld eingegebenen Einsatz. Es werden ausschließlich ganzzahlige Werte - * im Bereich von 5 bis 100.000 Credits akzeptiert, die einem Vielfachen von 5 entsprechen - * (5er-Schritte). Der Einsatz wird aktuell nur auf der Konsole ausgegeben. + * Processes the stake entered in the text field. Only integer values between 5 and 100,000 + * credits are accepted, in multiples of 5 (in increments of 5). The stake is currently only + * displayed on the console. */ private void processBet() { String input = taskbarInput.getText(); @@ -126,22 +125,22 @@ public class TaskbarController { int credits = Integer.parseInt(input.trim()); if (credits >= MIN_CREDITS && credits <= MAX_CREDITS && credits % CREDIT_STEP == 0) { - // TODO: Credits müssen an die GameEngine gesendet werden - LOGGER.info("Einsatz gesetzt: {} Casono Credits", credits); + // TODO: Credits must be sent to the GameEngine + LOGGER.info("Bet set: {} Casono Credits", credits); taskbarInput.clear(); } else { - LOGGER.info("Fehler: Nur 5er-Schritte (5, 10, ... 100.000) erlaubt!"); + LOGGER.error("Error: Only increments of 5 (5, 10, ... 100,000) are allowed!"); } } catch (NumberFormatException e) { - LOGGER.info("Fehler: Bitte nur eine Zahl eingeben!"); + LOGGER.error("Error: Please enter only one number!"); } } /** - * Öffnet den integrierten Casono Webbrowser. + * Opens the integrated Casono web browser. * - *

TODO: Ersetze die Start-URL durch die offizielle Projekt-Website (z.B. Tipps & Tricks - * Seite), sobald die Inhalte für Strategien und Support bereitstehen. + *

TODO: Replace the start URL with the official project website (e.g., Tips & Tricks page) + * once the content for strategies and support is available. */ @FXML private void onBrowserButtonClick() { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/game/deck/Deck.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/game/deck/Deck.java index f75a738..2e2c6c9 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/game/deck/Deck.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/domain/game/deck/Deck.java @@ -51,8 +51,8 @@ public class Deck { } /** - * Sets the cards of the deck. This method replaces the internal list - * with a copy of the provided list. + * Sets the cards of the deck. This method replaces the internal list with a copy of the + * provided list. * * @param cards the new list of cards to set */ diff --git a/src/main/resources/ui-structure/Casinogameui.css b/src/main/resources/ui-structure/Casinogameui.css index a512edc..7218af8 100644 --- a/src/main/resources/ui-structure/Casinogameui.css +++ b/src/main/resources/ui-structure/Casinogameui.css @@ -1,12 +1,12 @@ .root { -fx-background-color: #000000; - -fx-font-family: "Monospaced", "Courier New"; /* Schriftart */ + -fx-font-family: "Monospaced", "Courier New"; /* font */ } .background { -fx-background-image: url("/images/background.png"); - -fx-background-size: cover; /* Bild füllt das ganze Fenster aus */ - /* Zentriert das Bild und verhindert, dass es sich kachelartig wiederholt */ + -fx-background-size: cover; /* Image fills the entire window */ + /* Centers the image and prevents it from repeating in a tile-like pattern. */ -fx-background-position: center center; -fx-background-repeat: no-repeat; } @@ -181,20 +181,20 @@ .status-label-small { -fx-text-fill: #ffffff; - -fx-font-family: "Monospaced"; /* Schriftart */ + -fx-font-family: "Monospaced"; /* font */ -fx-font-size: 15px; } .status-value-text { -fx-text-fill: #ffffff; - -fx-font-family: "Monospaced"; /* Schriftart */ + -fx-font-family: "Monospaced"; /* font */ -fx-font-size: 15px; -fx-font-weight: bold; } .status-value-money { -fx-text-fill: #ffffff; - -fx-font-family: "Monospaced"; /* Schriftart */ + -fx-font-family: "Monospaced"; /* font */ -fx-font-size: 15px; -fx-font-weight: bold; } diff --git a/src/main/resources/ui-structure/Casinogameui.fxml b/src/main/resources/ui-structure/Casinogameui.fxml index 08bbf56..0a9e17d 100644 --- a/src/main/resources/ui-structure/Casinogameui.fxml +++ b/src/main/resources/ui-structure/Casinogameui.fxml @@ -5,7 +5,7 @@ - + - + - + - + - + - + - + - + - + @@ -52,7 +52,7 @@ - + - + - + - + - + - + - + @@ -103,7 +103,7 @@ - + @@ -118,7 +118,7 @@ - + diff --git a/src/main/resources/ui-structure/components/Chatbox.fxml b/src/main/resources/ui-structure/components/Chatbox.fxml index 6fdfad6..26cb448 100644 --- a/src/main/resources/ui-structure/components/Chatbox.fxml +++ b/src/main/resources/ui-structure/components/Chatbox.fxml @@ -5,16 +5,16 @@ - + @@ -38,16 +38,16 @@