diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/Toolbar.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/Toolbar.java index 5a9a3f0..a2201b5 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/Toolbar.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/Toolbar.java @@ -3,20 +3,22 @@ package pp.monopoly.client.gui; import java.util.Random; import com.jme3.font.BitmapText; +import com.jme3.math.ColorRGBA; import com.jme3.math.Vector3f; import com.jme3.scene.Geometry; -import com.simsilica.lemur.Axis; -import com.simsilica.lemur.Button; -import com.simsilica.lemur.Container; +import com.simsilica.lemur.*; +import com.simsilica.lemur.component.QuadBackgroundComponent; import com.simsilica.lemur.component.SpringGridLayout; +import com.simsilica.lemur.style.ElementId; +import pp.dialog.Dialog; import pp.monopoly.client.MonopolyApp; /** * Toolbar Klasse, die am unteren Rand der Szene angezeigt wird. * Die Buttons bewegen den Würfel auf dem Spielfeld. */ -public class Toolbar { +public class Toolbar extends Dialog { private final MonopolyApp app; private final Container toolbarContainer; @@ -35,6 +37,7 @@ public class Toolbar { * @param cube Der Würfel, der bewegt werden soll */ public Toolbar(MonopolyApp app, Geometry cube) { + super(app.getDialogManager()); this.app = app; this.cube = cube; @@ -44,13 +47,41 @@ public class Toolbar { // Setze die Position am unteren Rand und die Breite toolbarContainer.setLocalTranslation( 0, // Links bündig - 100, // Höhe über dem unteren Rand + 200, // Höhe über dem unteren Rand 0 // Z-Ebene ); - toolbarContainer.setPreferredSize(new Vector3f(app.getCamera().getWidth(), 100, 0)); // Volle Breite + toolbarContainer.setPreferredSize(new Vector3f(app.getCamera().getWidth(), 200, 0)); // Volle Breite + + // Hintergrund Grau + toolbarContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Füge Buttons zur Toolbar hinzu - initializeButtons(); + //initializeButtons(); + + + // Menü-Container: Ein Nested-Container für Kontostand und "Meine Gulag Frei Karten" + Container accountContainer = toolbarContainer.addChild(new Container()); + accountContainer.addChild(new Label("Kontostand", new ElementId("label"))); + accountContainer.addChild(new Label("Gulag Frei Karten", new ElementId("label"))); + accountContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); + + // Menü-Container: Ein Container für Übersicht + Container overviewContainer = toolbarContainer.addChild(new Container()); + overviewContainer.addChild(new Label("Übersicht", new ElementId("label"))); + overviewContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); + + // Menü-Container: Ein Container für Würfel + Container diceContainer = toolbarContainer.addChild(new Container()); + diceContainer.addChild(new Label("Wo Würfel?", new ElementId("label"))); + diceContainer.addChild(new Button("Würfeln")); + diceContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); + + // Menü-Container: Ein Nested-Container für Handeln, Grundstücke und Zug beenden + Container menuContainer = toolbarContainer.addChild(new Container()); + menuContainer.addChild(new Button("Handeln")); + menuContainer.addChild(new Button("Grundstücke")); + menuContainer.addChild(new Button("Zug beenden")); + menuContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); // Füge die Toolbar zur GUI hinzu app.getGuiNode().attachChild(toolbarContainer); @@ -64,9 +95,10 @@ public class Toolbar { * Initialisiert die Buttons in der Toolbar. */ private void initializeButtons() { - addButton("Vorwärts", 1); // Bewegung nach vorne - addButton("Rückwärts", -1); // Bewegung nach hinten + addTradeMenuButton(); // Bewegung nach vorne + addEndTurnButton(); // Bewegung nach hinten addDiceRollButton(); // Würfel-Button + } /** @@ -75,12 +107,13 @@ public class Toolbar { * @param label Der Text des Buttons * @param step Schrittweite (+1 für vorwärts, -1 für rückwärts) */ - private void addButton(String label, int step) { + + /*private void addButton(String label, int step) { Button button = new Button(label); button.setPreferredSize(new Vector3f(150, 50, 0)); // Größe der Buttons button.addClickCommands(source -> moveCube(step)); toolbarContainer.addChild(button); - } + }*/ /** * Fügt den Würfel-Button hinzu, der die Figur entsprechend der gewürfelten Zahl bewegt. @@ -92,6 +125,27 @@ public class Toolbar { toolbarContainer.addChild(diceButton); } + private void addTradeMenuButton() { + Button diceButton = new Button("Handeln"); + diceButton.setPreferredSize(new Vector3f(150, 50, 0)); // Größe des Buttons + diceButton.addClickCommands(source -> rollDice()); + toolbarContainer.addChild(diceButton); + } + + private void addEndTurnButton() { + Button diceButton = new Button("Grundstücke"); + diceButton.setPreferredSize(new Vector3f(150, 50, 0)); // Größe des Buttons + diceButton.addClickCommands(source -> rollDice()); + toolbarContainer.addChild(diceButton); + } + + private void addPropertyMenuButton() { + Button diceButton = new Button("Zug beenden"); + diceButton.setPreferredSize(new Vector3f(150, 50, 0)); // Größe des Buttons + diceButton.addClickCommands(source -> rollDice()); + toolbarContainer.addChild(diceButton); + } + /** * Simuliert einen Würfelwurf und bewegt die Figur entsprechend. */