Modular rendering based on game stage
This commit is contained in:
@@ -6,6 +6,7 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.Board;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.CurrentState;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
|
||||
import it.polimi.ingsw.gc14.Model.Orders.OrderPlayer;
|
||||
import javafx.animation.ScaleTransition;
|
||||
import javafx.application.Platform;
|
||||
@@ -31,6 +32,9 @@ import javafx.util.Duration;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static it.polimi.ingsw.gc14.Model.GamePackage.GameStages.RES_ACTIONS;
|
||||
import static it.polimi.ingsw.gc14.Model.GamePackage.GameStages.SLOT_CHOICE;
|
||||
|
||||
public class MainFXMLController {
|
||||
|
||||
@FXML private HBox mainHBox;
|
||||
@@ -51,6 +55,9 @@ public class MainFXMLController {
|
||||
private HBox popupCards;
|
||||
|
||||
private ClientController controller;
|
||||
private CurrentState old_state;
|
||||
private CurrentState new_state;
|
||||
|
||||
|
||||
public void setController(ClientController controller) {
|
||||
this.controller = controller;
|
||||
@@ -61,6 +68,9 @@ public class MainFXMLController {
|
||||
|
||||
@FXML
|
||||
public void initialize() {
|
||||
old_state=null;
|
||||
new_state=null;
|
||||
|
||||
// Import font and apply CSS
|
||||
Font.loadFont(getClass().getResourceAsStream("/Fonts/InknutAntiqua-Regular.ttf"), 14);
|
||||
mainHBox.sceneProperty().addListener((obs, oldScene, newScene) -> {
|
||||
@@ -76,12 +86,34 @@ public class MainFXMLController {
|
||||
|
||||
|
||||
public void render() {
|
||||
renderBackground();
|
||||
renderUpper();
|
||||
renderBoard();
|
||||
renderLower();
|
||||
renderMyHand();
|
||||
renderSidePanel();
|
||||
new_state=controller.miniModel.currentState;
|
||||
|
||||
System.out.println("OLD: "+old_state+", NEW: "+new_state);
|
||||
if (old_state==null) {
|
||||
renderBackground();
|
||||
renderUpper();
|
||||
renderBoard();
|
||||
renderLower();
|
||||
renderMyHand();
|
||||
renderSidePanel();
|
||||
} else if (old_state.getGameStage()==SLOT_CHOICE) {
|
||||
System.out.println("RIDISEGNO BOARD\n");
|
||||
renderBoard();
|
||||
} else if (old_state.getGameStage()==RES_ACTIONS) {
|
||||
System.out.println("RIDISEGNO TUTTO");
|
||||
renderUpper();
|
||||
renderBoard();
|
||||
renderLower();
|
||||
renderSidePanel();
|
||||
renderMyHand();
|
||||
// TODO: se sono io a pescare renderizzo myHand, altrimenti no (non è scontato)
|
||||
} else {
|
||||
System.out.println("NON GESTITO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
}
|
||||
|
||||
old_state=new_state;
|
||||
// TODO: le info in sidepanel non vengono aggiornate sempre aggiornate, bisogna prima capire dove metterle
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -233,7 +265,7 @@ public class MainFXMLController {
|
||||
upperList.getChildren().clear();
|
||||
|
||||
int i = 0;
|
||||
for (TribeCard card : controller.miniModel.board.upperListTribe) {
|
||||
for (TribeCard card : new ArrayList<>(controller.miniModel.board.upperListTribe)) {
|
||||
final int index = i;
|
||||
StackPane img = createCard(card, true, true);
|
||||
img.setOnMouseClicked(e -> controller.drawUpperTribeCard(controller.myUsername, index));
|
||||
|
||||
Reference in New Issue
Block a user