From aef2ef34fb06828d51402f45f6491dc6cd150824 Mon Sep 17 00:00:00 2001 From: Simon Wilkening Date: Fri, 29 Nov 2024 07:14:44 +0100 Subject: [PATCH] Verschiedene Popups kommentiert und richtig benannt --- .../java/pp/monopoly/client/MonopolyApp.java | 4 +- .../pp/monopoly/client/gui/TestWorld.java | 4 +- .../monopoly/client/gui/popups/Bankrupt.java | 8 +-- .../gui/popups/BuildingPropertyCard.java | 24 +++------ .../monopoly/client/gui/popups/BuyCard.java | 16 +++--- .../client/gui/popups/ConfirmTrade.java | 38 ++++++------- .../{EventCard.java => EventCardPopup.java} | 23 ++++---- .../client/gui/popups/FoodFieldCard.java | 11 ++-- .../client/gui/popups/GateFieldCard.java | 15 +++--- .../monopoly/client/gui/popups/SellHouse.java | 54 +++++-------------- .../monopoly/client/gui/popups/TimeOut.java | 6 +-- 11 files changed, 79 insertions(+), 124 deletions(-) rename Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/{EventCard.java => EventCardPopup.java} (89%) diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/MonopolyApp.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/MonopolyApp.java index 1c129e3..baf2bc7 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/MonopolyApp.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/MonopolyApp.java @@ -124,7 +124,7 @@ public class MonopolyApp extends SimpleApplication implements MonopolyClient, Ga private final ActionListener escapeListener = (name, isPressed, tpf) -> escape(isPressed); //TODO temp for testing - private EventCard eventCard; + private EventCardPopup eventCard; private BuildingPropertyCard buildingProperty; private FoodFieldCard foodField; private GateFieldCard gateField; @@ -274,7 +274,7 @@ public class MonopolyApp extends SimpleApplication implements MonopolyClient, Ga //logik zum wechselnden erscheinen und verschwinden beim drücken von B //TODO süäter entfernen private void handleB(boolean isPressed) { if (isPressed) { - Dialog tmp = new Bankrupt(this); + Dialog tmp = new SellHouse(this); tmp.open(); } } diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/TestWorld.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/TestWorld.java index 3bc64bf..2b4801b 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/TestWorld.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/TestWorld.java @@ -4,7 +4,7 @@ import java.util.List; import pp.monopoly.client.MonopolyApp; import pp.monopoly.client.gui.popups.BuyCard; -import pp.monopoly.client.gui.popups.EventCard; +import pp.monopoly.client.gui.popups.EventCardPopup; import pp.monopoly.client.gui.popups.FoodFieldCard; import pp.monopoly.client.gui.popups.GateFieldCard; import pp.monopoly.client.gui.popups.LooserPopUp; @@ -152,6 +152,6 @@ public class TestWorld implements GameEventListener{ @Override public void receivedEvent(EventCardEvent event) { - new EventCard(app, event.description()).open(); + new EventCardPopup(app, event.description()).open(); } } diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/Bankrupt.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/Bankrupt.java index 4083aef..175800c 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/Bankrupt.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/Bankrupt.java @@ -15,7 +15,7 @@ import pp.dialog.Dialog; import pp.monopoly.client.MonopolyApp; /** - * Bankrupt is a Warning-Popup, which appears, if the balance is negative at the end of a player´s turn // TODO welche menü-Klasse + * Bankrupt is a Warning-Popup which appears when the balance is negative at the end of a player´s turn */ public class Bankrupt extends Dialog { private final MonopolyApp app; @@ -49,7 +49,7 @@ public class Bankrupt extends Dialog { backgroundContainer.setPreferredSize(bankruptContainer.getPreferredSize().addLocal(padding, padding, 0)); // Titel - Label gateFieldTitle = bankruptContainer.addChild(new Label("Vorsicht !", new ElementId("warning-title"))); + Label gateFieldTitle = bankruptContainer.addChild(new Label("Vorsicht !", new ElementId("warning-label"))); gateFieldTitle.setFontSize(48); gateFieldTitle.setColor(ColorRGBA.Black); @@ -67,14 +67,14 @@ public class Bankrupt extends Dialog { quitButton.addClickCommands(source -> close()); - // Zentriere den Container + // Zentriere das Popup bankruptContainer.setLocalTranslation( (app.getCamera().getWidth() - bankruptContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + bankruptContainer.getPreferredSize().y) / 2, 8 ); - // Zentriere den Container + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - bankruptContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + bankruptContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuildingPropertyCard.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuildingPropertyCard.java index 300f4aa..858c32c 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuildingPropertyCard.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuildingPropertyCard.java @@ -16,8 +16,7 @@ import pp.monopoly.client.gui.SettingsMenu; import pp.monopoly.model.fields.BuildingProperty; /** - * TODO Kommentare fixen - * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. + * BuildingPropertyCard creates the popup for field information */ public class BuildingPropertyCard extends Dialog { private final MonopolyApp app; @@ -46,6 +45,9 @@ public class BuildingPropertyCard extends Dialog { buildingPropertyContainer = new Container(); buildingPropertyContainer.setBackground(new QuadBackgroundComponent(field.getColor().getColor())); + float padding = 10; // Passt den backgroundContainer an die Größe des buildingPropertyContainer an + backgroundContainer.setPreferredSize(buildingPropertyContainer.getPreferredSize().addLocal(padding, padding, 0)); + Label settingsTitle = buildingPropertyContainer.addChild(new Label( field.getName(), new ElementId("settings-title"))); settingsTitle.setFontSize(48); @@ -66,28 +68,14 @@ public class BuildingPropertyCard extends Dialog { propertyValuesContainer.addChild(new Label("„Hypothek: " + field.getHypo() + " EUR", new ElementId("label-Text"))); propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); - //TODO eventuell diese Stelle löschen, da nur die BuyCard Kaufen und beenden hat - - /* - // Beenden-Button - Button quitButton = foodFieldContainer.addChild(new Button("Beenden", new ElementId("button"))); - quitButton.setFontSize(32); - // Kaufen-Button - Button buyButton = foodFieldContainer.addChild(new Button("Kaufen", new ElementId("button"))); - buyButton.setFontSize(32); - */ - - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(buildingPropertyContainer.getPreferredSize().addLocal(padding, padding, 0)); - - - // Zentriere das Menü + // Zentriere das Popup buildingPropertyContainer.setLocalTranslation( (app.getCamera().getWidth() - buildingPropertyContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + buildingPropertyContainer.getPreferredSize().y) / 2, 8 ); + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - buildingPropertyContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + buildingPropertyContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuyCard.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuyCard.java index 4277c27..df976b0 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuyCard.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/BuyCard.java @@ -15,7 +15,7 @@ import pp.monopoly.model.fields.BuildingProperty; import pp.monopoly.notification.Sound; /** - * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. + * BuyCard is a popup that appears when a player lands on a field that is still available for purchase. */ public class BuyCard extends Dialog { private final MonopolyApp app; @@ -38,13 +38,16 @@ public class BuyCard extends Dialog { // Hauptcontainer für die Gebäudekarte buyCardContainer = new Container(); + + float padding = 10; // Passt den backgroundContainer an die Größe des buyCardContainers an + backgroundContainer.setPreferredSize(buyCardContainer.getPreferredSize().addLocal(padding, padding, 0)); - + // Titel Label title = buyCardContainer.addChild(new Label( field.getName(), new ElementId("label-Bold"))); title.setBackground(new QuadBackgroundComponent(field.getColor().getColor())); title.setFontSize(48); - // Text, der auf der Karte steht + // Text, der auf dem Popup steht // Die Preise werden dynamisch dem BoardManager entnommen Container propertyValuesContainer = buyCardContainer.addChild(new Container()); propertyValuesContainer.addChild(new Label("„Grundstückswert: " + field.getPrice() + " EUR", new ElementId("label-Text"))); @@ -77,17 +80,14 @@ public class BuyCard extends Dialog { app.getGameLogic().send(new BuyPropertyResponse()); })); - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(buyCardContainer.getPreferredSize().addLocal(padding, padding, 0)); - - - // Zentriere das Menü + // Zentriere das Popup buyCardContainer.setLocalTranslation( (app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y) / 2, 8 ); + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/ConfirmTrade.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/ConfirmTrade.java index 89b47af..b75202f 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/ConfirmTrade.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/ConfirmTrade.java @@ -12,7 +12,7 @@ import pp.monopoly.client.gui.SettingsMenu; import pp.monopoly.notification.Sound; /** - * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. + * ConfirmTrade is a popup which appears when a trade is proposed to this certain player. */ public class ConfirmTrade extends Dialog { private final MonopolyApp app; @@ -23,26 +23,25 @@ public class ConfirmTrade extends Dialog { public ConfirmTrade(MonopolyApp app) { super(app.getDialogManager()); this.app = app; - - //Generate the corresponfing field - //int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();; - // BuildingProperty field = (BuildingProperty) new BoardManager().getFieldAtIndex(index); // Create the background container backgroundContainer = new Container(); backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background attachChild(backgroundContainer); - // Hauptcontainer für die Gebäudekarte + // Hauptcontainer für das Bestätigungspopup confirmTradeContainer = new Container(); + + float padding = 10; // Passt den backgroundContainer an die Größe des confirmTradeContainer an + backgroundContainer.setPreferredSize(confirmTradeContainer.getPreferredSize().addLocal(padding, padding, 0)); - - Label title = confirmTradeContainer.addChild(new Label( "Handel", new ElementId("label-Bold"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + // Titel + Label title = confirmTradeContainer.addChild(new Label( "Handel", new ElementId("label-Bold"))); title.setFontSize(48); title.setColor(ColorRGBA.Black); // Text, der auf der Karte steht - // Die Preise werden dynamisch dem BoardManager entnommen + // Die Werte werden dem Handel entnommen (Iwas auch immer da dann ist) Container propertyValuesContainer = confirmTradeContainer.addChild(new Container()); propertyValuesContainer.addChild(new Label("„Spieler XXX möchte:", new ElementId("label-Text"))); //TODO hier überall die entsprechenden Variablen einfügen propertyValuesContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile @@ -59,30 +58,26 @@ public class ConfirmTrade extends Dialog { propertyValuesContainer.addChild(new Label("tauschen, willst du das Angebot annehmen?", new ElementId("label-Text"))); propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); - // Beenden-Button - Button declineButton = confirmTradeContainer.addChild(new Button("Ablehnen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + // Ablehnen-Button + Button declineButton = confirmTradeContainer.addChild(new Button("Ablehnen", new ElementId("button"))); declineButton.setFontSize(32); - declineButton.addClickCommands(s -> ifTopDialog(() -> { + declineButton.addClickCommands(s -> ifTopDialog(() -> { //TODO Buttonfunktion prüfen app.getGameLogic().playSound(Sound.BUTTON); close(); })); - // Kaufen-Button - Button negotiateButton = confirmTradeContainer.addChild(new Button("Verhandeln", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + // Verhandeln-Button + Button negotiateButton = confirmTradeContainer.addChild(new Button("Verhandeln", new ElementId("button"))); negotiateButton.setFontSize(32); negotiateButton.addClickCommands(s -> ifTopDialog( () -> { //TODO Buttonfunktion prüfen app.getGameLogic().playSound(Sound.BUTTON); })); - // Kaufen-Button - Button confirmButton = confirmTradeContainer.addChild(new Button("Bestätigen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + // Confirm-Button + Button confirmButton = confirmTradeContainer.addChild(new Button("Bestätigen", new ElementId("button"))); confirmButton.setFontSize(32); - confirmButton.addClickCommands(s -> ifTopDialog( () -> { + confirmButton.addClickCommands(s -> ifTopDialog( () -> { //TODO Buttonfunktion prüfen app.getGameLogic().playSound(Sound.BUTTON); })); - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(confirmTradeContainer.getPreferredSize().addLocal(padding, padding, 0)); - - // Zentriere das Menü confirmTradeContainer.setLocalTranslation( (app.getCamera().getWidth() - confirmTradeContainer.getPreferredSize().x) / 2, @@ -90,6 +85,7 @@ public class ConfirmTrade extends Dialog { 8 ); + // Zentriere das Menü backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - confirmTradeContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + confirmTradeContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/EventCard.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/EventCardPopup.java similarity index 89% rename from Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/EventCard.java rename to Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/EventCardPopup.java index 3b8a1f6..71f2c80 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/EventCard.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/EventCardPopup.java @@ -13,11 +13,11 @@ import com.simsilica.lemur.component.QuadBackgroundComponent; import com.simsilica.lemur.style.ElementId; import pp.dialog.Dialog; import pp.monopoly.client.MonopolyApp; -import pp.monopoly.client.gui.SettingsMenu; + /** - * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. + * EventCardPopup is a popup which appears when a certain EventCard is triggered by entering a EventCardField */ -public class EventCard extends Dialog { +public class EventCardPopup extends Dialog { private final MonopolyApp app; private final Geometry overlayBackground; private final Container eventCardContainer; @@ -25,7 +25,7 @@ public class EventCard extends Dialog { private final String description; - public EventCard(MonopolyApp app, String description) { + public EventCardPopup(MonopolyApp app, String description) { super(app.getDialogManager()); this.app = app; this.description = description; @@ -39,19 +39,21 @@ public class EventCard extends Dialog { backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background app.getGuiNode().attachChild(backgroundContainer); - // Hauptcontainer für die Gebäudekarte + // Hauptcontainer für die Eventcard eventCardContainer = new Container(); eventCardContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); eventCardContainer.setPreferredSize(new Vector3f(550,400,10)); + float padding = 10; // Passt den backgroundContainer an die Größe des eventCardContainers an + backgroundContainer.setPreferredSize(eventCardContainer.getPreferredSize().addLocal(padding, padding, 0)); + // Titel - // Die Namen werden dynamisch dem BoardManager entnommen Label gateFieldTitle = eventCardContainer.addChild(new Label("Ereigniskarte", new ElementId("settings-title"))); gateFieldTitle.setFontSize(48); gateFieldTitle.setColor(ColorRGBA.Black); // Text, der auf der Karte steht - // Die Preise werden dynamisch dem BoardManager entnommen + // Die Erklärungsfelder werden automatisch den descriptions der Message entnommen Container propertyValuesContainer = eventCardContainer.addChild(new Container()); propertyValuesContainer.addChild(new Label(description, new ElementId("label-Text"))); propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); @@ -62,17 +64,14 @@ public class EventCard extends Dialog { quitButton.setFontSize(32); quitButton.addClickCommands(source -> close()); - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(eventCardContainer.getPreferredSize().addLocal(padding, padding, 0)); - - - // Zentriere das Menü + // Zentriere das Popup eventCardContainer.setLocalTranslation( (app.getCamera().getWidth() - eventCardContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + eventCardContainer.getPreferredSize().y) / 2, 8 ); + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - eventCardContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + eventCardContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/FoodFieldCard.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/FoodFieldCard.java index 90e4d24..c7b75b6 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/FoodFieldCard.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/FoodFieldCard.java @@ -19,7 +19,7 @@ import pp.monopoly.model.fields.FoodField; import pp.monopoly.notification.Sound; /** - * FoodFieldCard erstellt die Geböudekarte vom Brandl und der Truppenküche + * FoodFieldCard creates the popup for field information */ public class FoodFieldCard extends Dialog { private final MonopolyApp app; @@ -48,7 +48,8 @@ public class FoodFieldCard extends Dialog { foodFieldContainer = new Container(); foodFieldContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.1f, 0.1f, 0.1f, 0.9f))); - + float padding = 10; // Passt den backgroundContainer an die Größe des foodFieldContainers an + backgroundContainer.setPreferredSize(foodFieldContainer.getPreferredSize().addLocal(padding, padding, 0)); // Titel, bestehend aus dynamischen Namen anhand der ID und der Schriftfarbe/größe Label settingsTitle = foodFieldContainer.addChild(new Label(field.getName(), new ElementId("settings-title"))); @@ -86,16 +87,14 @@ public class FoodFieldCard extends Dialog { app.getGameLogic().send(new BuyPropertyResponse()); })); - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(foodFieldContainer.getPreferredSize().addLocal(padding, padding, 0)); - - // Zentriere das Menü + // Zentriere das Popup foodFieldContainer.setLocalTranslation( (app.getCamera().getWidth() - foodFieldContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + foodFieldContainer.getPreferredSize().y) / 2, 8 ); + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - foodFieldContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + foodFieldContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java index 7eb1eb0..413cefa 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java @@ -18,7 +18,7 @@ import pp.monopoly.model.fields.GateField; import pp.monopoly.notification.Sound; /** - * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. + * GateFieldCard creates the popup for field information */ public class GateFieldCard extends Dialog { private final MonopolyApp app; @@ -47,6 +47,10 @@ public class GateFieldCard extends Dialog { gateFieldContainer = new Container(); gateFieldContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); + float padding = 10; // Passt den backgroundContainer an die Größe des gateFieldContainers an + backgroundContainer.setPreferredSize(gateFieldContainer.getPreferredSize().addLocal(padding, padding, 0)); + + // Titel // Die Namen werden dynamisch dem BoardManager entnommen Label gateFieldTitle = gateFieldContainer.addChild(new Label(field.getName(), new ElementId("settings-title"))); @@ -80,19 +84,16 @@ public class GateFieldCard extends Dialog { app.getGameLogic().playSound(Sound.BUTTON); app.getGameLogic().send(new BuyPropertyResponse()); close(); - })); + })); - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(gateFieldContainer.getPreferredSize().addLocal(padding, padding, 0)); - - - // Zentriere das Menü + // Zentriere das Popup gateFieldContainer.setLocalTranslation( (app.getCamera().getWidth() - gateFieldContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + gateFieldContainer.getPreferredSize().y) / 2, 8 ); + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - gateFieldContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + gateFieldContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/SellHouse.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/SellHouse.java index 51627d3..872eed0 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/SellHouse.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/SellHouse.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.stream.Collectors; /** - * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. + * SellHouse is a popup which appears when a player clicks on the demolish-button in the BuildingAdminMenu */ public class SellHouse extends Dialog { private final MonopolyApp app; @@ -36,59 +36,36 @@ public class SellHouse extends Dialog { public SellHouse(MonopolyApp app) { super(app.getDialogManager()); this.app = app; - - //Generate the corresponfing field - //int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();; - // BuildingProperty field = (BuildingProperty) new BoardManager().getFieldAtIndex(index); // Create the background container backgroundContainer = new Container(); backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background attachChild(backgroundContainer); - // Hauptcontainer für die Gebäudekarte + // Hauptcontainer für das Menü sellhouseContainer = new Container(); sellhouseContainer.setPreferredSize(new Vector3f(800, 600, 0)); - - - Label title = sellhouseContainer.addChild(new Label( "Gebäude Abreißen", new ElementId("label-Bold"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + + float padding = 10; // Passt den backgroundContainer an die Größe des sellhouseContainers an + backgroundContainer.setPreferredSize(sellhouseContainer.getPreferredSize().addLocal(padding, padding, 0)); + + // Titel + Label title = sellhouseContainer.addChild(new Label( "Gebäude Abreißen", new ElementId("warining-Bold"))); title.setFontSize(48); title.setColor(ColorRGBA.Black); + //Unterteilund des sellHouseContainer in drei "Untercontainer" Container upContainer = sellhouseContainer.addChild(new Container()); Container middleContainer = sellhouseContainer.addChild(new Container()); Container downContainer = sellhouseContainer.addChild(new Container()); // Text, der auf der Karte steht - // Die Preise werden dynamisch dem BoardManager entnommen upContainer.addChild(new Label("„Grundstück wählen:", new ElementId("label-Text"))); //TODO hier überall die entsprechenden Variablen einfügen upContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile upContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); middleContainer.setPreferredSize(new Vector3f(100, 150, 0)); middleContainer.setBackground(new QuadBackgroundComponent(ColorRGBA.Orange)); - /* - // Create a VersionedList for the ListBox model - VersionedList checkboxListModel = new VersionedList<>(); - for (int i = 1; i <= 10; i++) { - checkboxListModel.add("Option " + i); // Add items to the list - } - - // Create a ListBox with the "glass" style and the model - ListBox checkboxListBox = new ListBox<>(checkboxListModel, "glass"); - checkboxListBox.setPreferredSize(new Vector3f(300, 200, 0)); // Adjust size as needed - - // Add the ListBox to the middle container - middleContainer.addChild(checkboxListBox); - - // If you need separate checkboxes (optional), render them separately - for (String option : checkboxListModel) { - Checkbox checkbox = new Checkbox(option); - checkbox.setFontSize(16); // Optional: adjust font size - middleContainer.addChild(checkbox); // Add it to the middle container - } - // Add the ListBox to the middle container - middleContainer.addChild(checkboxListBox); */ // Create a VersionedList for the ListBox model VersionedList listModel = new VersionedList<>(); @@ -129,14 +106,14 @@ public class SellHouse extends Dialog { downContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f))); // Beenden-Button - Button cancelButton = sellhouseContainer.addChild(new Button("Abbrechen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + Button cancelButton = sellhouseContainer.addChild(new Button("Abbrechen", new ElementId("button"))); cancelButton.setFontSize(32); cancelButton.addClickCommands(s -> ifTopDialog(() -> { app.getGameLogic().playSound(Sound.BUTTON); close(); })); // Kaufen-Button - Button confirmButton = sellhouseContainer.addChild(new Button("Bestätigen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen + Button confirmButton = sellhouseContainer.addChild(new Button("Bestätigen", new ElementId("button"))); confirmButton.setFontSize(32); confirmButton.addClickCommands(s -> ifTopDialog( () -> { app.getGameLogic().playSound(Sound.BUTTON); @@ -148,19 +125,14 @@ public class SellHouse extends Dialog { } })); - - - float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(sellhouseContainer.getPreferredSize().addLocal(padding, padding, 0)); - - - // Zentriere das Menü + // Zentriere das Popup sellhouseContainer.setLocalTranslation( (app.getCamera().getWidth() - sellhouseContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + sellhouseContainer.getPreferredSize().y) / 2, 8 ); + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - sellhouseContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + sellhouseContainer.getPreferredSize().y+ padding) / 2, diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TimeOut.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TimeOut.java index 02dad1c..18f69a5 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TimeOut.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TimeOut.java @@ -52,7 +52,7 @@ public class TimeOut extends Dialog { backgroundContainer.setPreferredSize(timeOutContainer.getPreferredSize().addLocal(padding, padding, 0)); // Titel - Label gateFieldTitle = timeOutContainer.addChild(new Label("Vorsicht !", new ElementId("warning-title"))); + Label gateFieldTitle = timeOutContainer.addChild(new Label("Vorsicht !", new ElementId("warining-label"))); gateFieldTitle.setFontSize(48); gateFieldTitle.setColor(ColorRGBA.Black); @@ -68,14 +68,14 @@ public class TimeOut extends Dialog { quitButton.addClickCommands(source -> close()); - // Zentriere den Container + // Zentriere das Popup timeOutContainer.setLocalTranslation( (app.getCamera().getWidth() - timeOutContainer.getPreferredSize().x) / 2, (app.getCamera().getHeight() + timeOutContainer.getPreferredSize().y) / 2, 8 ); - // Zentriere den Container + // Zentriere das Popup backgroundContainer.setLocalTranslation( (app.getCamera().getWidth() - timeOutContainer.getPreferredSize().x - padding) / 2, (app.getCamera().getHeight() + timeOutContainer.getPreferredSize().y+ padding) / 2,