package dev.llan.view.game.utilities; import dev.llan.controller.Controller; import dev.llan.model.GameRecord; import dev.llan.model.state.State; import dev.llan.view.RenderComponent; import dev.llan.view.GameComponent; import dev.llan.view.View; import dev.llan.view.game.utilities.cards.CardsView; import dev.llan.view.game.utilities.inventory.InventoryView; import dev.llan.view.game.utilities.stats.StatsView; import dev.llan.view.game.utilities.status.StatusView; import dev.llan.view.game.utilities.turns.TurnsView; import javafx.scene.Parent; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; public class UtilitiesView implements RenderComponent, GameComponent { private final VBox box; private final StatsView statsView; private final CardsView cardsView; private final StatusView statusView; private final InventoryView inventoryView; private final TurnsView turnsView; private boolean isExploration; public UtilitiesView(View view, Controller controller, Pane parent) { box = new VBox(); box.prefWidthProperty().bind(parent.widthProperty()); box.getStyleClass().add("util-background"); statsView = new StatsView(box); box.getChildren().add(statsView.render()); cardsView = new CardsView(view, controller, box); box.getChildren().add(cardsView.render()); statusView = new StatusView(view, box); inventoryView = new InventoryView(view, controller, box); box.getChildren().add(inventoryView.render()); turnsView = new TurnsView(view, controller); isExploration = true; } @Override public void updateGameRecord(GameRecord gameRecord) { if(gameRecord.getGameState() == State.COMBAT) { if(isExploration) { isExploration = false; box.getChildren().clear(); box.getChildren().add(statsView.render()); box.getChildren().add(cardsView.render()); box.getChildren().add(statusView.render()); box.getChildren().add(inventoryView.render()); box.getChildren().add(turnsView.render()); } statusView.updateGameRecord(gameRecord); turnsView.updateGameRecord(gameRecord); } else if (gameRecord.getGameState() == State.EXPLORATION && !isExploration) { isExploration = true; box.getChildren().remove(statusView.render()); box.getChildren().remove(turnsView.render()); } inventoryView.updateGameRecord(gameRecord); statsView.updateGameRecord(gameRecord); cardsView.updateGameRecord(gameRecord); } @Override public Parent render() { return box; } }