Angepasste Toolbar

This commit is contained in:
Simon Wilkening 2024-11-20 03:17:10 +01:00
parent 1203077aed
commit f6f708fd5b

View File

@ -3,20 +3,22 @@ package pp.monopoly.client.gui;
import java.util.Random; import java.util.Random;
import com.jme3.font.BitmapText; import com.jme3.font.BitmapText;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry; import com.jme3.scene.Geometry;
import com.simsilica.lemur.Axis; import com.simsilica.lemur.*;
import com.simsilica.lemur.Button; import com.simsilica.lemur.component.QuadBackgroundComponent;
import com.simsilica.lemur.Container;
import com.simsilica.lemur.component.SpringGridLayout; import com.simsilica.lemur.component.SpringGridLayout;
import com.simsilica.lemur.style.ElementId;
import pp.dialog.Dialog;
import pp.monopoly.client.MonopolyApp; import pp.monopoly.client.MonopolyApp;
/** /**
* Toolbar Klasse, die am unteren Rand der Szene angezeigt wird. * Toolbar Klasse, die am unteren Rand der Szene angezeigt wird.
* Die Buttons bewegen den Würfel auf dem Spielfeld. * Die Buttons bewegen den Würfel auf dem Spielfeld.
*/ */
public class Toolbar { public class Toolbar extends Dialog {
private final MonopolyApp app; private final MonopolyApp app;
private final Container toolbarContainer; private final Container toolbarContainer;
@ -35,6 +37,7 @@ public class Toolbar {
* @param cube Der Würfel, der bewegt werden soll * @param cube Der Würfel, der bewegt werden soll
*/ */
public Toolbar(MonopolyApp app, Geometry cube) { public Toolbar(MonopolyApp app, Geometry cube) {
super(app.getDialogManager());
this.app = app; this.app = app;
this.cube = cube; this.cube = cube;
@ -44,13 +47,41 @@ public class Toolbar {
// Setze die Position am unteren Rand und die Breite // Setze die Position am unteren Rand und die Breite
toolbarContainer.setLocalTranslation( toolbarContainer.setLocalTranslation(
0, // Links bündig 0, // Links bündig
100, // Höhe über dem unteren Rand 200, // Höhe über dem unteren Rand
0 // Z-Ebene 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 // 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 // Füge die Toolbar zur GUI hinzu
app.getGuiNode().attachChild(toolbarContainer); app.getGuiNode().attachChild(toolbarContainer);
@ -64,9 +95,10 @@ public class Toolbar {
* Initialisiert die Buttons in der Toolbar. * Initialisiert die Buttons in der Toolbar.
*/ */
private void initializeButtons() { private void initializeButtons() {
addButton("Vorwärts", 1); // Bewegung nach vorne addTradeMenuButton(); // Bewegung nach vorne
addButton("Rückwärts", -1); // Bewegung nach hinten addEndTurnButton(); // Bewegung nach hinten
addDiceRollButton(); // Würfel-Button addDiceRollButton(); // Würfel-Button
} }
/** /**
@ -75,12 +107,13 @@ public class Toolbar {
* @param label Der Text des Buttons * @param label Der Text des Buttons
* @param step Schrittweite (+1 für vorwärts, -1 für rückwärts) * @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 button = new Button(label);
button.setPreferredSize(new Vector3f(150, 50, 0)); // Größe der Buttons button.setPreferredSize(new Vector3f(150, 50, 0)); // Größe der Buttons
button.addClickCommands(source -> moveCube(step)); button.addClickCommands(source -> moveCube(step));
toolbarContainer.addChild(button); toolbarContainer.addChild(button);
} }*/
/** /**
* Fügt den Würfel-Button hinzu, der die Figur entsprechend der gewürfelten Zahl bewegt. * 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); 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. * Simuliert einen Würfelwurf und bewegt die Figur entsprechend.
*/ */