From fccb12bd126bbc568b436f8be6999afc9507731e Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Wed, 27 May 2026 22:50:09 +0200 Subject: [PATCH] Some Main GUI refactor, addHover more than one ecc. --- .../java/it/polimi/ingsw/gc14/Model/Game.java | 2 +- .../it/polimi/ingsw/gc14/ServerLauncher.java | 17 ++++++------- .../gc14/View/GUI/MainFXMLController.java | 24 ++++++++++++------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java index f0aa196..8717ed7 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java @@ -104,7 +104,7 @@ public class Game implements Serializable { { while(disconnetedPlayers.containsKey(nextPlayer)&& disconnetedPlayers.get(nextPlayer)) { - nextPlayer.totem=getAvailableTotems().get(new Random().nextInt(getAvailableTotems().size()-1)); + nextPlayer.totem=getAvailableTotems().get(new Random().nextInt(0,getAvailableTotems().size())); nextPlayer=totemChoiceQueue.poll(); if(nextPlayer==null) { diff --git a/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java b/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java index 53e123a..8e24514 100644 --- a/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java +++ b/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java @@ -113,18 +113,19 @@ public class ServerLauncher { { if(event.getEventType() != EventType.RECONNECT_PLAYER) { + if(event.getEventType() == EventType.DISCONNECTED_PLAYER) + { + disconnectionTimer.cancel(true); + disconnectionTimer = null; + playerList.clear(); + gameController.setModel(null); + System.out.println("\n!!! Player list is now empty, ready for a new game init !!!\n"); + return true; + } event.setIsError(true); serverRMI.notifyAll(event); serverTCP.notifyAll(event); return false; - }else if(event.getEventType() != EventType.DISCONNECTED_PLAYER) - { - disconnectionTimer.cancel(true); - disconnectionTimer = null; - playerList.clear(); - gameController.setModel(null); - System.out.println("\n!!! Player list is now empty, ready for a new game init !!!\n"); - return true; } } 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 cd563f5..bb3e131 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 @@ -70,13 +70,15 @@ public class MainFXMLController { public void setController(ClientController controller) { this.controller = controller; + skipBtn.setOnAction(e -> controller.skipTurn()); } @FXML public void initialize() { Font.loadFont(getClass().getResourceAsStream("/Fonts/InknutAntiqua-Regular.ttf"), 14); - + addHoverZoom(skipBtn); + addHoverZoom(detailsBtn); popup = new Popup(); mainHBox.sceneProperty().addListener((obs, oldScene, newScene) -> { if (newScene != null) { @@ -97,6 +99,7 @@ public class MainFXMLController { } }); initPopup(); + detailsBtn.setOnAction(e -> openDetailsPopup()); renderBackground(); isError=false; } @@ -181,7 +184,12 @@ public class MainFXMLController { totem.fitHeightProperty().bind(img.fitHeightProperty().multiply(0.332)); totem.setPreserveRatio(true); StackPane.setAlignment(totem, Pos.TOP_LEFT); - StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * img.getFitHeight())); + img.fitHeightProperty().addListener((obs, ov, nv) -> { + StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * nv.doubleValue())); + }); + if (img.getFitHeight() > 0) { + StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * img.getFitHeight())); + } wrapper.getChildren().add(totem); } @@ -193,7 +201,12 @@ public class MainFXMLController { private StackPane createCard(PlayableCard card, boolean withZoom, boolean withShadow, Region parent) { ImageView img = new ImageView(loadImage("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png")); img.setPreserveRatio(true); - img.fitHeightProperty().bind(parent.getScene().heightProperty().subtract(56).divide(4).multiply(0.90)); + if(controller.miniModel.players.size()==5) + { + img.fitHeightProperty().bind(parent.getScene().heightProperty().subtract(56).divide(4).multiply(0.85)); + } + else + img.fitHeightProperty().bind(parent.getScene().heightProperty().subtract(56).divide(4).multiply(0.90)); addClip(img); StackPane wrapper = new StackPane(img); if (withShadow) addShadow(wrapper); @@ -558,11 +571,6 @@ public class MainFXMLController { private void renderSidePanel() { infoText.setText("Round: "+Integer.toString(controller.miniModel.currentState.getRound()) + " • " + controller.miniModel.currentState.getGameStage().toString()); - skipBtn.setOnAction(e -> controller.skipTurn()); - detailsBtn.setOnAction(e -> openDetailsPopup()); - - addHoverZoom(skipBtn); - addHoverZoom(detailsBtn); VBox playerList = new VBox(); playerList.setFillWidth(true);