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 c2053aa..4fd4ae1 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 @@ -5,7 +5,10 @@ import it.polimi.ingsw.gc14.Model.Cards.TribeCard; import it.polimi.ingsw.gc14.Model.Game; import it.polimi.ingsw.gc14.Model.Player; import it.polimi.ingsw.gc14.Model.Slot; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; +import javafx.geometry.Bounds; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.image.*; @@ -103,100 +106,164 @@ public class MainFXMLController { lowerList.getChildren().add(view); i++; } + + + // My hand myHand.getChildren().clear(); myHand.setSpacing(6); - myHand.setAlignment(Pos.CENTER); - Pane artists=new Pane(); - artists.setPrefHeight(270); + //myHand.setAlignment(Pos.CENTER_LEFT); + + myHand.getChildren().add(createCardPane(model.getPlayerByUsername(username).artists.stream().map(x -> (TribeCard) x).toList(), myHand)); + myHand.getChildren().add(createCardPane(model.getPlayerByUsername(username).gatherers.stream().map(x -> (TribeCard) x).toList(), myHand)); + myHand.getChildren().add(createCardPane(model.getPlayerByUsername(username).inventors.stream().map(x -> (TribeCard) x).toList(), myHand)); + myHand.getChildren().add(createCardPane(model.getPlayerByUsername(username).builders.stream().map(x -> (TribeCard) x).toList(), myHand)); + myHand.getChildren().add(createCardPane(model.getPlayerByUsername(username).shamans.stream().map(x -> (TribeCard) x).toList(), myHand)); + myHand.getChildren().add(createCardPane(model.getPlayerByUsername(username).hunters.stream().map(x -> (TribeCard) x).toList(), myHand)); + + + + /** + // Artists + Pane artists = new Pane(); + artists.prefHeightProperty().bind(myHand.heightProperty()); + artists.prefWidthProperty().bind( + artists.heightProperty().multiply(0.63).add((model.getPlayerByUsername(username).artists.size() - 1) * 50) + ); for (int j=0;j cards, HBox container) { + Pane pane = new Pane(); + int n = cards.size(); + pane.prefHeightProperty().bind(container.heightProperty()); + + for (int j = 0; j < n; j++) { + TribeCard card = cards.get(j); + Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png")); + ImageView view = new ImageView(tribeImg); + view.fitHeightProperty().bind(pane.heightProperty().subtract(10)); + view.setPreserveRatio(true); + view.setLayoutX(j * 50); + view.setLayoutY(5); + pane.getChildren().add(view); + + if (j == 0) { + view.layoutBoundsProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue obs, Bounds old, Bounds bounds) { + if (bounds.getWidth() > 0) { + pane.setPrefWidth(bounds.getWidth() + (n - 1) * 50); + view.layoutBoundsProperty().removeListener(this); + } + } + }); + } + } + return pane; } }