Add: createCardPanel method
This commit is contained in:
@@ -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);
|
||||
//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.setPrefHeight(270);
|
||||
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<model.getPlayerByUsername(username).artists.size();j++) {
|
||||
TribeCard card=model.getPlayerByUsername(username).artists.get(j);
|
||||
|
||||
Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));
|
||||
ImageView view = new ImageView(tribeImg);
|
||||
view.fitHeightProperty().bind(myHand.heightProperty().subtract(10));
|
||||
view.fitHeightProperty().bind(artists.heightProperty().subtract(10));
|
||||
view.setPreserveRatio(true);
|
||||
view.setLayoutX((model.getPlayerByUsername(username).artists.size() -j ) * 50); // solo X cambia
|
||||
view.setLayoutY(5);
|
||||
artists.getChildren().addLast(view);
|
||||
i++;
|
||||
}
|
||||
|
||||
myHand.getChildren().add(artists);
|
||||
|
||||
// Gatherers
|
||||
Pane gatherers=new Pane();
|
||||
gatherers.setPrefHeight(270);
|
||||
gatherers.prefHeightProperty().bind(myHand.heightProperty());
|
||||
gatherers.prefWidthProperty().bind(
|
||||
gatherers.heightProperty().multiply(0.63).add((model.getPlayerByUsername(username).gatherers.size() - 1) * 50)
|
||||
);
|
||||
for (int j=0;j<model.getPlayerByUsername(username).gatherers.size();j++) {
|
||||
TribeCard card=model.getPlayerByUsername(username).gatherers.get(j);
|
||||
|
||||
Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));
|
||||
ImageView view = new ImageView(tribeImg);
|
||||
view.fitHeightProperty().bind(myHand.heightProperty().subtract(10));
|
||||
view.fitHeightProperty().bind(artists.heightProperty().subtract(10));
|
||||
view.setPreserveRatio(true);
|
||||
view.setLayoutX((model.getPlayerByUsername(username).gatherers.size() -j ) * 50); // solo X cambia
|
||||
view.setLayoutY(5);
|
||||
gatherers.getChildren().addLast(view);
|
||||
i++;
|
||||
}
|
||||
|
||||
myHand.getChildren().add(gatherers);
|
||||
|
||||
// Inventors
|
||||
Pane inventors=new Pane();
|
||||
gatherers.setPrefHeight(270);
|
||||
inventors.prefHeightProperty().bind(myHand.heightProperty());
|
||||
for (int j=0;j<model.getPlayerByUsername(username).inventors.size();j++) {
|
||||
TribeCard card=model.getPlayerByUsername(username).inventors.get(j);
|
||||
|
||||
Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));
|
||||
ImageView view = new ImageView(tribeImg);
|
||||
view.fitHeightProperty().bind(myHand.heightProperty().subtract(10));
|
||||
view.fitHeightProperty().bind(inventors.heightProperty().subtract(10));
|
||||
view.setPreserveRatio(true);
|
||||
view.setLayoutX((model.getPlayerByUsername(username).inventors.size() -j )* 50); // solo X cambia
|
||||
view.setLayoutY(5);
|
||||
inventors.getChildren().addLast(view);
|
||||
i++;
|
||||
}
|
||||
|
||||
myHand.getChildren().add(inventors);
|
||||
|
||||
// Builders
|
||||
Pane builders=new Pane();
|
||||
gatherers.setPrefHeight(270);
|
||||
builders.prefHeightProperty().bind(myHand.heightProperty());
|
||||
for (int j=0;j<model.getPlayerByUsername(username).builders.size();j++) {
|
||||
TribeCard card=model.getPlayerByUsername(username).builders.get(j);
|
||||
|
||||
Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));
|
||||
ImageView view = new ImageView(tribeImg);
|
||||
view.fitHeightProperty().bind(myHand.heightProperty().subtract(10));
|
||||
view.fitHeightProperty().bind(builders.heightProperty().subtract(10));
|
||||
view.setPreserveRatio(true);
|
||||
view.setLayoutX((model.getPlayerByUsername(username).builders.size() -j ) * 50); // solo X cambia
|
||||
view.setLayoutY(5);
|
||||
builders.getChildren().addLast(view);
|
||||
i++;
|
||||
}
|
||||
|
||||
myHand.getChildren().add(builders);
|
||||
|
||||
// Shamans
|
||||
Pane shamans=new Pane();
|
||||
shamans.setPrefHeight(270);
|
||||
shamans.prefHeightProperty().bind(myHand.heightProperty());
|
||||
for (int j=0;j<model.getPlayerByUsername(username).shamans.size();j++) {
|
||||
TribeCard card=model.getPlayerByUsername(username).shamans.get(j);
|
||||
|
||||
Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));
|
||||
ImageView view = new ImageView(tribeImg);
|
||||
view.fitHeightProperty().bind(myHand.heightProperty().subtract(10));
|
||||
view.fitHeightProperty().bind(shamans.heightProperty().subtract(10));
|
||||
view.setPreserveRatio(true);
|
||||
view.setLayoutX((model.getPlayerByUsername(username).shamans.size() -j ) * 50); // solo X cambia
|
||||
view.setLayoutY(5);
|
||||
shamans.getChildren().addLast(view);
|
||||
i++;
|
||||
}
|
||||
|
||||
myHand.getChildren().add(shamans);
|
||||
|
||||
// Hunters
|
||||
Pane hunters=new Pane();
|
||||
hunters.setPrefHeight(myHand.heightProperty().get());
|
||||
hunters.prefHeightProperty().bind(myHand.heightProperty());
|
||||
for (int j=0;j<model.getPlayerByUsername(username).hunters.size();j++) {
|
||||
TribeCard card=model.getPlayerByUsername(username).hunters.get(j);
|
||||
|
||||
Image tribeImg = new Image(getClass().getResourceAsStream("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));
|
||||
ImageView view = new ImageView(tribeImg);
|
||||
view.fitHeightProperty().bind(myHand.heightProperty().subtract(10));
|
||||
view.fitHeightProperty().bind(hunters.heightProperty().subtract(10));
|
||||
view.setPreserveRatio(true);
|
||||
view.setLayoutX((model.getPlayerByUsername(username).hunters.size() -j )* 50); // solo X cambia
|
||||
view.setLayoutY(5);
|
||||
hunters.getChildren().addLast(view);
|
||||
i++;
|
||||
}
|
||||
|
||||
myHand.getChildren().add(hunters);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private Pane createCardPane(List<TribeCard> 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<Bounds>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Bounds> obs, Bounds old, Bounds bounds) {
|
||||
if (bounds.getWidth() > 0) {
|
||||
pane.setPrefWidth(bounds.getWidth() + (n - 1) * 50);
|
||||
view.layoutBoundsProperty().removeListener(this);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return pane;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user