From 225a8c0e088e960221b31d7380767c4a29d16f90 Mon Sep 17 00:00:00 2001 From: Simon Wilkening Date: Sun, 24 Nov 2024 18:11:42 +0100 Subject: [PATCH] BuildingPropertyCard adjusted --- .../java/pp/monopoly/client/MonopolyApp.java | 10 +-- .../gui/popups/BuildingPropertyCard.java | 2 +- .../monopoly/client/gui/popups/BuyCard.java | 62 +++++++++++-------- 3 files changed, 41 insertions(+), 33 deletions(-) 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 060fbda..f2debee 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 @@ -160,17 +160,17 @@ 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) { - if (gateField != null && isBuyCardPopupOpen) { + if (buyCard != null && isBuyCardPopupOpen) { // Schließe das SettingsMenu System.out.println("Schließe BuyCardPopup..."); - gateField.close(); - gateField = null; + buyCard.close(); + buyCard = null; setBuyCardPopupOpen(false); } else { // Öffne das SettingsMenu System.out.println("Öffne BuyCardPopup..."); - gateField = new GateFieldCard(this); - gateField.open(); + buyCard = new BuyCard(this); + buyCard.open(); setBuyCardPopupOpen(true); } } 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 4fbaca0..7408da7 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 @@ -23,7 +23,7 @@ public class BuildingPropertyCard extends Dialog { private final Geometry overlayBackground; private final Container buildingPropertyContainer; private final Container backgroundContainer; - private int index = 39; + private int index = 37; public BuildingPropertyCard(MonopolyApp app) { super(app.getDialogManager()); 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 8cfba7f..14354e2 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 @@ -3,7 +3,6 @@ package pp.monopoly.client.gui.popups; import com.jme3.material.Material; import com.jme3.material.RenderState.BlendMode; import com.jme3.math.ColorRGBA; -import com.jme3.math.Vector3f; import com.jme3.scene.Geometry; import com.jme3.scene.shape.Quad; import com.simsilica.lemur.*; @@ -11,6 +10,7 @@ import com.simsilica.lemur.component.QuadBackgroundComponent; import com.simsilica.lemur.style.ElementId; import pp.dialog.Dialog; import pp.monopoly.client.MonopolyApp; +import pp.monopoly.model.fields.BuildingProperty; /** * SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann. @@ -18,13 +18,18 @@ import pp.monopoly.client.MonopolyApp; public class BuyCard extends Dialog { private final MonopolyApp app; private final Geometry overlayBackground; - private final Container settingsContainer; + private final Container buyCardContainer; private final Container backgroundContainer; + private int index = 37; + public BuyCard(MonopolyApp app) { super(app.getDialogManager()); this.app = app; + //Generate the corresponfing field + BuildingProperty field = (BuildingProperty) app.getBoardManager().getFieldAtIndex(index); + // Halbtransparentes Overlay hinzufügen overlayBackground = createOverlayBackground(); app.getGuiNode().attachChild(overlayBackground); @@ -34,52 +39,55 @@ public class BuyCard 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 das Menü - settingsContainer = new Container(); - settingsContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.1f, 0.1f, 0.1f, 0.9f))); + // Hauptcontainer für die Gebäudekarte + buyCardContainer = new Container(); + buyCardContainer.setBackground(new QuadBackgroundComponent(field.getColor().getColor())); - - // Titel - Label settingsTitle = settingsContainer.addChild(new Label("Gebäude 30", new ElementId("settings-title"))); //TODO Dynamische Gebäudezahl einfügen + Label settingsTitle = buyCardContainer.addChild(new Label( field.getName(), new ElementId("settings-title"))); settingsTitle.setFontSize(48); - int i = 0; - int a = 10; - int b = -45; - - // Effekt-Sound: Slider und Checkbox - Container propertyValuesContainer = settingsContainer.addChild(new Container()); - propertyValuesContainer.addChild(new Label("„Preis:" + i, new ElementId("label-Text")));//TODO Variable hier einsetzen - propertyValuesContainer.addChild(new Label("„Miete:" + a, new ElementId("label-Text")));//TODO Variable hier einsetzen - propertyValuesContainer.addChild(new Label("„Hypothek:" + b, new ElementId("label-Text")));//TODO Variable hier einsetzen + // Text, der auf der Karte 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"))); + propertyValuesContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile + propertyValuesContainer.addChild(new Label("„Miete allein: " + field.getAllRent().get(0)+ " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("„-mit 1 Haus: " + field.getAllRent().get(1) + " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("„-mit 2 Häuser: " + field.getAllRent().get(2) + " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("„-mit 3 Häuser: " + field.getAllRent().get(3) + " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("„-mit 4 Häuser: " + field.getAllRent().get(4) + " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("„-mit 1 Hotel: " + field.getAllRent().get(5) + " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("„-1 Haus kostet: " + field.getHousePrice()+ " EUR", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile + 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))); // Beenden-Button - Button quitButton = settingsContainer.addChild(new Button("Beenden", new ElementId("button"))); + Button quitButton = buyCardContainer.addChild(new Button("Beenden", new ElementId("button"))); quitButton.setFontSize(32); // Kaufen-Button - Button buyButton = settingsContainer.addChild(new Button("Kaufen", new ElementId("button"))); + Button buyButton = buyCardContainer.addChild(new Button("Kaufen", new ElementId("button"))); buyButton.setFontSize(32); float padding = 10; // Padding around the settingsContainer for the background - backgroundContainer.setPreferredSize(settingsContainer.getPreferredSize().addLocal(padding, padding, 0)); + backgroundContainer.setPreferredSize(buyCardContainer.getPreferredSize().addLocal(padding, padding, 0)); // Zentriere das Menü - settingsContainer.setLocalTranslation( - (app.getCamera().getWidth() - settingsContainer.getPreferredSize().x) / 2, - (app.getCamera().getHeight() + settingsContainer.getPreferredSize().y) / 2, + buyCardContainer.setLocalTranslation( + (app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x) / 2, + (app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y) / 2, 8 ); backgroundContainer.setLocalTranslation( - (app.getCamera().getWidth() - settingsContainer.getPreferredSize().x - padding) / 2, - (app.getCamera().getHeight() + settingsContainer.getPreferredSize().y+ padding) / 2, + (app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x - padding) / 2, + (app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y+ padding) / 2, 7 ); - app.getGuiNode().attachChild(settingsContainer); + app.getGuiNode().attachChild(buyCardContainer); } /** @@ -104,7 +112,7 @@ public class BuyCard extends Dialog { @Override public void close() { System.out.println("Schließe SettingsMenu..."); // Debugging-Ausgabe - app.getGuiNode().detachChild(settingsContainer); // Entferne das Menü + app.getGuiNode().detachChild(buyCardContainer); // Entferne das Menü app.getGuiNode().detachChild(backgroundContainer); //Entfernt Rand app.getGuiNode().detachChild(overlayBackground); // Entferne das Overlay app.setSettingsMenuOpen(false); // Menü als geschlossen markieren