From 0fe7941c3e5fd4889f17d856dcae0c150ea1f4cd Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Sun, 17 May 2026 21:40:07 +0200 Subject: [PATCH] Add: Added Building Icon in Player Side Panel --- .../gc14/View/GUI/MainFXMLController.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java index e40e817..45899f9 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java @@ -236,6 +236,7 @@ public class MainFXMLController { case "builders" -> new ArrayList<>(p.builders); case "shamans" -> new ArrayList<>(p.shamans); case "hunters" -> new ArrayList<>(p.hunters); + case "building" -> new ArrayList<>(p.buildingCards); default -> new ArrayList<>(); }; } @@ -345,7 +346,7 @@ public class MainFXMLController { } headerRow.getChildren().addAll(totem, usernameLabel); - // Riga 2: cibo + prestigio + // Riga 2: cibo + prestigio + building HBox statsRow = new HBox(10); statsRow.setAlignment(Pos.CENTER); @@ -367,13 +368,31 @@ public class MainFXMLController { prestigeLabel.getStyleClass().add("label-small"); prestigeBox.getChildren().addAll(PPIcon, prestigeLabel); - statsRow.getChildren().addAll(foodBox, prestigeBox); + ImageView icon = new ImageView(); + icon.setFitWidth(28); + icon.setFitHeight(28); + icon.setPreserveRatio(true); + icon.setImage(loadImage("/GUIImages/Icons/Building.png")); + + ArrayList cards = getPlayerCards(player.getUserName(), "building"); + if (cards.isEmpty()) { + ColorAdjust grayscale = new ColorAdjust(); + icon.setEffect(grayscale); + icon.setOpacity(0.3); + } else { + icon.setOnMouseClicked(e -> openPopup(new ArrayList<>(cards))); + addHoverZoom(icon); + } + + statsRow.getChildren().addAll(foodBox, prestigeBox,icon); // Righe 3-4: icone carte HBox iconsRow1 = new HBox(6); + iconsRow1.setSpacing(20); iconsRow1.setAlignment(Pos.CENTER); HBox iconsRow2 = new HBox(6); iconsRow2.setAlignment(Pos.CENTER); + iconsRow2.setSpacing(20); renderIcons(iconsRow1, iconsRow2, player); card.getChildren().addAll(headerRow, statsRow, iconsRow1, iconsRow2);