Some fixes (Concurrent List GUI)

This commit is contained in:
rubenpirreram
2026-05-15 19:16:43 +02:00
parent 987420c4a4
commit ff94a9fca8
7 changed files with 126 additions and 117 deletions
@@ -82,15 +82,19 @@ public class GUI extends Application implements IView {
public void render() {
if(controller.miniModel.currentState.getGameStage()==TOTEM_CHOICE) {
Platform.runLater(() -> {
controllerTotem.render();
primaryStage.setScene(totemScene);
primaryStage.setFullScreen(true);
synchronized (this) {
controllerTotem.render();
primaryStage.setScene(totemScene);
primaryStage.setFullScreen(true);
}
});
} else {
Platform.runLater(() -> {
controllerMain.render();
primaryStage.setScene(mainScene);
primaryStage.setFullScreen(true);
synchronized (this) {
controllerMain.render();
primaryStage.setScene(mainScene);
primaryStage.setFullScreen(true);
}
});
}
}
@@ -86,40 +86,36 @@ public class MainFXMLController {
public void render() {
synchronized (controller)
{
if (old_state_stage==null) {
renderBackground();
renderUpper();
renderBoard();
renderLower();
public synchronized void render() {
if (old_state_stage==null) {
renderBackground();
renderUpper();
renderBoard();
renderLower();
renderMyHand();
renderSidePanel();
} else if (old_state_stage==SLOT_CHOICE ) {
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
System.out.println("RIDISEGNO BOARD\n");
renderBoard();
} else if (old_state_stage==RES_ACTIONS) {
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
System.out.println("RIDISEGNO TUTTO. USERNAME: "+old_state_username);
renderUpper();
renderBoard();
renderLower();
renderSidePanel();
if (Objects.equals(old_state_username, controller.myUsername)) {
renderMyHand();
renderSidePanel();
} else if (old_state_stage==SLOT_CHOICE ) {
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
System.out.println("RIDISEGNO BOARD\n");
renderBoard();
} else if (old_state_stage==RES_ACTIONS) {
System.out.println("OLD: "+old_state_stage+", NEW: "+controller.miniModel.currentState.getGameStage());
System.out.println("RIDISEGNO TUTTO. USERNAME: "+old_state_username);
renderUpper();
renderBoard();
renderLower();
renderSidePanel();
if (Objects.equals(old_state_username, controller.myUsername)) {
renderMyHand();
}
// TODO: se sono io a pescare renderizzo myHand, altrimenti no (non è scontato)
} else {
System.out.println("NON GESTITO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
old_state_stage=controller.miniModel.currentState.getGameStage();
old_state_username=controller.miniModel.currentState.getCurrentPlayer().getUserName();
// TODO: se sono io a pescare renderizzo myHand, altrimenti no (non è scontato)
} else {
System.out.println("NON GESTITO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
old_state_stage=controller.miniModel.currentState.getGameStage();
old_state_username=controller.miniModel.currentState.getCurrentPlayer().getUserName();
// TODO: le info in sidepanel non vengono aggiornate sempre aggiornate, bisogna prima capire dove metterle
}
@@ -272,21 +268,24 @@ public class MainFXMLController {
upperList.setAlignment(Pos.CENTER);
upperList.getChildren().clear();
int i = 0;
for (TribeCard card : controller.miniModel.board.upperListTribe) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawUpperTribeCard(controller.myUsername, index));
upperList.getChildren().add(img);
i++;
}
i = 0;
for (BuildingCard card : controller.miniModel.board.upperListBuilding) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawUpperBuildingCard(controller.myUsername, index));
upperList.getChildren().add(img);
i++;
synchronized (controller)
{
int i = 0;
for (TribeCard card : controller.miniModel.board.upperListTribe) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawUpperTribeCard(controller.myUsername, index));
upperList.getChildren().add(img);
i++;
}
i = 0;
for (BuildingCard card : controller.miniModel.board.upperListBuilding) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawUpperBuildingCard(controller.myUsername, index));
upperList.getChildren().add(img);
i++;
}
}
}
private void renderLower() {
@@ -294,21 +293,24 @@ public class MainFXMLController {
lowerList.setAlignment(Pos.CENTER);
lowerList.getChildren().clear();
int i = 0;
for (TribeCard card : controller.miniModel.board.lowerListTribe) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawLowerTribeCard(controller.myUsername, index));
lowerList.getChildren().add(img);
i++;
}
i = 0;
for (BuildingCard card : controller.miniModel.board.lowerListBuilding) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawLowerBuildingCard(controller.myUsername, index));
lowerList.getChildren().add(img);
i++;
synchronized (controller)
{
int i = 0;
for (TribeCard card : controller.miniModel.board.lowerListTribe) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawLowerTribeCard(controller.myUsername, index));
lowerList.getChildren().add(img);
i++;
}
i = 0;
for (BuildingCard card : controller.miniModel.board.lowerListBuilding) {
final int index = i;
StackPane img = createCard(card, true, true);
img.setOnMouseClicked(e -> controller.drawLowerBuildingCard(controller.myUsername, index));
lowerList.getChildren().add(img);
i++;
}
}
}
private void renderDeck() {