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.Cards.TribeCard;
|
||||||
import it.polimi.ingsw.gc14.Model.GamePackage.Board;
|
import it.polimi.ingsw.gc14.Model.GamePackage.Board;
|
||||||
import it.polimi.ingsw.gc14.Model.GamePackage.CurrentState;
|
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 it.polimi.ingsw.gc14.Model.Orders.OrderPlayer;
|
||||||
import javafx.animation.ScaleTransition;
|
import javafx.animation.ScaleTransition;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
@@ -31,6 +32,9 @@ import javafx.util.Duration;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
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 {
|
public class MainFXMLController {
|
||||||
|
|
||||||
@FXML private HBox mainHBox;
|
@FXML private HBox mainHBox;
|
||||||
@@ -51,6 +55,9 @@ public class MainFXMLController {
|
|||||||
private HBox popupCards;
|
private HBox popupCards;
|
||||||
|
|
||||||
private ClientController controller;
|
private ClientController controller;
|
||||||
|
private CurrentState old_state;
|
||||||
|
private CurrentState new_state;
|
||||||
|
|
||||||
|
|
||||||
public void setController(ClientController controller) {
|
public void setController(ClientController controller) {
|
||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
@@ -61,6 +68,9 @@ public class MainFXMLController {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
|
old_state=null;
|
||||||
|
new_state=null;
|
||||||
|
|
||||||
// Import font and apply CSS
|
// Import font and apply CSS
|
||||||
Font.loadFont(getClass().getResourceAsStream("/Fonts/InknutAntiqua-Regular.ttf"), 14);
|
Font.loadFont(getClass().getResourceAsStream("/Fonts/InknutAntiqua-Regular.ttf"), 14);
|
||||||
mainHBox.sceneProperty().addListener((obs, oldScene, newScene) -> {
|
mainHBox.sceneProperty().addListener((obs, oldScene, newScene) -> {
|
||||||
@@ -76,12 +86,34 @@ public class MainFXMLController {
|
|||||||
|
|
||||||
|
|
||||||
public void render() {
|
public void render() {
|
||||||
|
new_state=controller.miniModel.currentState;
|
||||||
|
|
||||||
|
System.out.println("OLD: "+old_state+", NEW: "+new_state);
|
||||||
|
if (old_state==null) {
|
||||||
renderBackground();
|
renderBackground();
|
||||||
renderUpper();
|
renderUpper();
|
||||||
renderBoard();
|
renderBoard();
|
||||||
renderLower();
|
renderLower();
|
||||||
renderMyHand();
|
renderMyHand();
|
||||||
renderSidePanel();
|
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();
|
upperList.getChildren().clear();
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (TribeCard card : controller.miniModel.board.upperListTribe) {
|
for (TribeCard card : new ArrayList<>(controller.miniModel.board.upperListTribe)) {
|
||||||
final int index = i;
|
final int index = i;
|
||||||
StackPane img = createCard(card, true, true);
|
StackPane img = createCard(card, true, true);
|
||||||
img.setOnMouseClicked(e -> controller.drawUpperTribeCard(controller.myUsername, index));
|
img.setOnMouseClicked(e -> controller.drawUpperTribeCard(controller.myUsername, index));
|
||||||
|
|||||||
Reference in New Issue
Block a user