This commit is contained in:
Johannes Schmelz 2024-11-24 00:11:18 +01:00
commit 4a882bc4ac

View File

@ -31,6 +31,9 @@ public class LobbyMenu {
private final MonopolyApp app; private final MonopolyApp app;
private final Container menuContainer; private final Container menuContainer;
private Geometry background; private Geometry background;
private Geometry circle;
private Container lowerLeftMenu;
private Container lowerRightMenu;
public LobbyMenu(MonopolyApp app) { public LobbyMenu(MonopolyApp app) {
this.app = app; this.app = app;
@ -61,7 +64,7 @@ public class LobbyMenu {
spacerBeforeInput.setPreferredSize(new Vector3f(20, 1, 0)); // Width of the spacer spacerBeforeInput.setPreferredSize(new Vector3f(20, 1, 0)); // Width of the spacer
// Add an input field (TextField) // Add an input field (TextField)
TextField startingCapital = horizontalContainer.addChild(new TextField("")); TextField startingCapital = horizontalContainer.addChild(new TextField("15 000"));
startingCapital.setPreferredWidth(100); // Set the width of the input field startingCapital.setPreferredWidth(100); // Set the width of the input field
startingCapital.setPreferredSize(new Vector3f(150, 50, 0)); startingCapital.setPreferredSize(new Vector3f(150, 50, 0));
startingCapital.setInsets(new Insets3f(5, 10, 5, 10)); // Add padding around the text inside the field startingCapital.setInsets(new Insets3f(5, 10, 5, 10)); // Add padding around the text inside the field
@ -88,7 +91,7 @@ public class LobbyMenu {
playerInputContainer.setBackground(null); playerInputContainer.setBackground(null);
TextField playerInputField = new TextField(""); TextField playerInputField = new TextField("Spieler 1");
playerInputField.setPreferredSize(new Vector3f(100, 20, 0)); playerInputField.setPreferredSize(new Vector3f(100, 20, 0));
playerInputField.setInsets(new Insets3f(5, 10, 5, 10)); // Add padding for the text inside the field playerInputField.setInsets(new Insets3f(5, 10, 5, 10)); // Add padding for the text inside the field
playerInputField.setBackground(new QuadBackgroundComponent(ColorRGBA.Black)); playerInputField.setBackground(new QuadBackgroundComponent(ColorRGBA.Black));
@ -103,10 +106,12 @@ public class LobbyMenu {
figureDropdownContainer.setBackground(null); figureDropdownContainer.setBackground(null);
VersionedList<String> figures = new VersionedList<>(); VersionedList<String> figures = new VersionedList<>();
figures.add("Hund"); figures.add("Laptop");
figures.add("Flugzeug");
figures.add("Jägermeister");
figures.add("Katze"); figures.add("Katze");
figures.add("Panzer"); figures.add("OOP");
figures.add("Pot"); figures.add("Handyholster");
Selector<String> figureDropdown = new Selector<>(figures, "glass"); Selector<String> figureDropdown = new Selector<>(figures, "glass");
figureDropdown.setBackground(new QuadBackgroundComponent(ColorRGBA.DarkGray)); figureDropdown.setBackground(new QuadBackgroundComponent(ColorRGBA.DarkGray));
@ -120,19 +125,19 @@ public class LobbyMenu {
buttonContainer.setInsets(new Insets3f(20, 0, 10, 0)); // Add spacing above the buttons buttonContainer.setInsets(new Insets3f(20, 0, 10, 0)); // Add spacing above the buttons
buttonContainer.setBackground(null); buttonContainer.setBackground(null);
// Lower-left container for "Abbrechen" button // Lower-left container for "Abbrechen" button
Container lowerLeftMenu = new Container(); lowerLeftMenu = new Container();
Button cancelButton = new Button("Abbrechen"); Button cancelButton = new Button("Abbrechen");
cancelButton.setPreferredSize(new Vector3f(200, 60, 0)); // Set size to match the appearance in the image cancelButton.setPreferredSize(new Vector3f(200, 60, 0)); // Set size to match the appearance in the image
cancelButton.setFontSize(18); // Adjust font size cancelButton.setFontSize(18); // Adjust font size
cancelButton.addClickCommands(source -> goBackToCreateGame()); // Add functionality cancelButton.addClickCommands(source -> goBackToCreateGame()); // Add functionality
lowerLeftMenu.addChild(cancelButton); lowerLeftMenu.addChild(cancelButton);
// Position the container near the bottom-left corner // Position the container near the bottom-left corner
lowerLeftMenu.setLocalTranslation(new Vector3f(120, 170, 3)); // Adjust X and Y to align with the bottom-left corner lowerLeftMenu.setLocalTranslation(new Vector3f(120, 170, 3)); // Adjust X and Y to align with the bottom-left corner
app.getGuiNode().attachChild(lowerLeftMenu); app.getGuiNode().attachChild(lowerLeftMenu);
// Lower-right container for "Bereit" button // Lower-right container for "Bereit" button
Container lowerRightMenu = new Container(); lowerRightMenu = new Container();
Button readyButton = new Button("Bereit"); Button readyButton = new Button("Bereit");
readyButton.setPreferredSize(new Vector3f(200, 60, 0)); // Set size to match the appearance in the image readyButton.setPreferredSize(new Vector3f(200, 60, 0)); // Set size to match the appearance in the image
readyButton.setFontSize(18); // Adjust font size readyButton.setFontSize(18); // Adjust font size
@ -140,12 +145,12 @@ public class LobbyMenu {
readyButton.addClickCommands(source -> toggleReady(null)); // Add functionality readyButton.addClickCommands(source -> toggleReady(null)); // Add functionality
lowerRightMenu.addChild(readyButton); lowerRightMenu.addChild(readyButton);
// Position the container near the bottom-right corner // Position the container near the bottom-right corner
lowerRightMenu.setLocalTranslation(new Vector3f(app.getCamera().getWidth() - 320, 170, 3)); // X: 220px from the right, Y: 50px above the bottom lowerRightMenu.setLocalTranslation(new Vector3f(app.getCamera().getWidth() - 320, 170, 3)); // X: 220px from the right, Y: 50px above the bottom
app.getGuiNode().attachChild(lowerRightMenu); app.getGuiNode().attachChild(lowerRightMenu);
// Add a colored circle between the input field and the dropdown menu // Add a colored circle between the input field and the dropdown menu
Geometry circle = createCircle( ColorRGBA.Red); // 50 is the diameter, Red is the color circle = createCircle( ColorRGBA.Red); // 50 is the diameter, Red is the color
circle.setLocalTranslation(new Vector3f( circle.setLocalTranslation(new Vector3f(
(app.getCamera().getWidth()) / 2, // Center horizontally (app.getCamera().getWidth()) / 2, // Center horizontally
(app.getCamera().getHeight() / 2) - 90, // Adjust Y position (app.getCamera().getHeight() / 2) - 90, // Adjust Y position
@ -205,7 +210,10 @@ public class LobbyMenu {
*/ */
private void goBackToCreateGame() { private void goBackToCreateGame() {
app.getGuiNode().detachChild(menuContainer); app.getGuiNode().detachChild(menuContainer);
app.getGuiNode().detachChild(background); // Entfernt das Hintergrundbild app.getGuiNode().detachChild(background);
app.getGuiNode().detachChild(circle);
app.getGuiNode().detachChild(lowerLeftMenu);
app.getGuiNode().detachChild(lowerRightMenu);
new CreateGameMenu(app); new CreateGameMenu(app);
} }