package dev.llan.view.game.modals; import dev.llan.controller.Controller; import dev.llan.model.GameRecord; import dev.llan.model.cards.Card; import dev.llan.model.pieces.Entity; import dev.llan.model.pieces.attributes.effects.EffectRecord; import dev.llan.model.pieces.attributes.inventory.equipment.Equipment; import dev.llan.view.GameComponent; import dev.llan.view.View; import dev.llan.view.game.GameView; import dev.llan.view.game.modals.card.CardView; import dev.llan.view.game.modals.collection.CollectionView; import dev.llan.view.game.modals.entity.EntityView; import dev.llan.view.game.modals.equipment.EquipmentView; import dev.llan.view.game.modals.status.StatusView; import javafx.scene.Parent; import javafx.scene.layout.Pane; public class ModalManager implements GameComponent { private final Pane viewContainer; private final GameView gameView; private final CollectionView collectionView; private boolean collectionModalOn; private final EquipmentView equipmentView; private boolean equipmentModalOn; private final CardView cardView; private boolean cardModalOn; private final EntityView entityView; private boolean entityModalOn; private final StatusView statusView; private boolean statusModalOn; public ModalManager(View view, GameView gameView, Controller controller, Pane viewContainer) { this.viewContainer = viewContainer; this.gameView = gameView; collectionView = new CollectionView(view, controller, viewContainer); collectionModalOn = false; equipmentView = new EquipmentView(view, viewContainer); equipmentModalOn = false; cardView = new CardView(view, viewContainer); cardModalOn = false; entityView = new EntityView(view, viewContainer); entityModalOn = false; statusView = new StatusView(view, viewContainer); statusModalOn = false; } public void setCollectionModalOn(boolean on) { collectionModalOn = on; setModalOn(on, collectionView.render()); } public boolean isCollectionModalOn() { return collectionModalOn; } public void setEquipmentModalOn(boolean on, ModalData data) { equipmentModalOn = on; if(on) { equipmentView.setView(data); } setModalOn(on, equipmentView.render()); } public boolean isEquipmentModalOn() { return equipmentModalOn; } public void setCardModalOn(boolean on, ModalData data) { cardModalOn = on; setModalOn(on, cardView.render()); if(on) { cardView.setView(data); } } public boolean isCardModalOn() { return cardModalOn; } public void setEntityModalOn(boolean on, ModalData data) { entityModalOn = on; setModalOn(on, entityView.render()); if(on) { entityView.setView(data); } } public boolean isEntityModalOn() { return entityModalOn; } public void setStatusModalOn(boolean on, ModalData data) { statusModalOn = on; setModalOn(on, statusView.render()); if(on) { statusView.setView(data); } } public boolean isStatusModalOn() { return statusModalOn; } private void setModalOn(boolean on, Parent modal) { if(on) { viewContainer.getChildren().add(modal); gameView.setScrolling(false); } else { viewContainer.getChildren().remove(modal); gameView.setScrolling(true); } } @Override public void updateGameRecord(GameRecord gameRecord) { collectionView.updateGameRecord(gameRecord); } }