Some fixes (Concurrent List GUI)
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -89,7 +89,7 @@ public class TUI implements IView {
|
||||
* Delegates to {@link #renderBoard()}.
|
||||
*/
|
||||
@Override
|
||||
public void render() {
|
||||
public synchronized void render() {
|
||||
if(model != null)
|
||||
{
|
||||
if(model.currentState.getGameStage().equals(GameStages.TOTEM_CHOICE))
|
||||
@@ -99,6 +99,7 @@ public class TUI implements IView {
|
||||
else if(model.currentState.getGameStage().equals(GameStages.ENDED))
|
||||
{
|
||||
renderStanding();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -109,25 +110,27 @@ public class TUI implements IView {
|
||||
}
|
||||
|
||||
private void renderStanding() {
|
||||
StringBuilder stringBuilder=new StringBuilder();
|
||||
ArrayList<Player> playersList=new ArrayList<>(model.players.values());
|
||||
for(int i = 0; i< model.players.size()/2; i++)
|
||||
if(model.standingPlayers!=null)
|
||||
{
|
||||
stringBuilder.append(AsciiTable.sideBySide(List.of(playersList.get((i*2)).toString().split("\n")),List.of(playersList.get((i*2+1)).toString().split("\n")),2));
|
||||
}
|
||||
stringBuilder.append("\n");
|
||||
if(playersList.size()%2!=0)
|
||||
{
|
||||
stringBuilder.append(playersList.get(playersList.size()-1).toString());
|
||||
StringBuilder stringBuilder=new StringBuilder();
|
||||
for(int i = 0; i< model.standingPlayers.size()/2; i++)
|
||||
{
|
||||
stringBuilder.append(AsciiTable.sideBySide(List.of(model.standingPlayers.get((i*2)).toString().split("\n")),List.of(model.standingPlayers.get((i*2+1)).toString().split("\n")),2));
|
||||
}
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
System.out.println(stringBuilder);
|
||||
if(playersList.get(0).getUserName().equals(username))
|
||||
{
|
||||
System.out.println("!!!YOU WON!!!");
|
||||
}
|
||||
else {
|
||||
System.out.println("!!!YOU LOST!!!");
|
||||
if(model.standingPlayers.size()%2!=0)
|
||||
{
|
||||
stringBuilder.append(model.standingPlayers.get(model.standingPlayers.size()-1).toString());
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
System.out.println(stringBuilder);
|
||||
if(model.standingPlayers.get(0).getUserName().equals(username))
|
||||
{
|
||||
System.out.println("GAME ENDED: !!!YOU WON!!!");
|
||||
}
|
||||
else {
|
||||
System.out.println("GAME ENDED: !!!YOU LOST!!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user