From 1aa1dcceb5de299e979a28e6b17271a3fb4040c3 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 26 May 2026 08:25:23 +0200 Subject: [PATCH] Feat: Reduce coupling by using pub/sub --- .../ntnu/idi/idatt2003/g40/mappe/Main.java | 4 +-- .../minigames/MiniGamesController.java | 30 +++++++------------ 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java index 99d33ce..77f119b 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java @@ -170,8 +170,8 @@ public void start(final Stage stage) throws Exception { MiniGamesView miniGamesView = new MiniGamesView(); MiniGamesController miniGamesController = new MiniGamesController( - miniGamesView, eventManager, stocksInFile.getFirst(), gameEngineView, - gameEngineController, clickerGame, inGameView, findStockGame, timeInputsGame + miniGamesView, eventManager, stocksInFile.getFirst(), + gameEngineController, clickerGame, findStockGame, timeInputsGame ); // Adds a generic event subscriber to the event manager diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/MiniGamesController.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/MiniGamesController.java index acad65a..adafb12 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/MiniGamesController.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/MiniGamesController.java @@ -6,7 +6,7 @@ import edu.ntnu.idi.idatt2003.g40.mappe.service.event.EventSubscriber; import edu.ntnu.idi.idatt2003.g40.mappe.service.event.EventType; import edu.ntnu.idi.idatt2003.g40.mappe.view.ViewController; -import edu.ntnu.idi.idatt2003.g40.mappe.view.ingame.InGameView; +import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.WidgetEnum; import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.minigames.games.ClickerGame; import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.minigames.games.FindStockGame; import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.minigames.games.TimeInputsGame; @@ -25,11 +25,6 @@ public final class MiniGamesController * */ private Stock activeStock; - /** - * The game engine view to delegate games towards. - * */ - private final GameEngineView gameEngineView; - /** * The game engine controller. * */ @@ -40,11 +35,6 @@ public final class MiniGamesController * */ private final ClickerGame clickerGame; - /** - * The in game view. - * */ - private final InGameView inGameView; - /** * The find stock game instance. * */ @@ -61,28 +51,22 @@ public final class MiniGamesController * @param viewElement the associated {@link MiniGamesView}. * @param eventManager the associated {@link EventManager}. * @param initialStock the initial selected stock. - * @param gameEngineView the game engine view. * @param gameEngineController the game engine controller. * @param clickerGame the clicker game instance. - * @param inGameView the in game view instance. * @param findStockGame the find stock game instance. * @param timeInputsGame the timed inputs game. * */ public MiniGamesController(final MiniGamesView viewElement, final EventManager eventManager, final Stock initialStock, - final GameEngineView gameEngineView, final GameEngineController gameEngineController, final ClickerGame clickerGame, - final InGameView inGameView, final FindStockGame findStockGame, final TimeInputsGame timeInputsGame ) { this.activeStock = initialStock; - this.gameEngineView = gameEngineView; this.gameEngineController = gameEngineController; this.clickerGame = clickerGame; - this.inGameView = inGameView; this.findStockGame = findStockGame; this.timeInputsGame = timeInputsGame; super(viewElement, eventManager); @@ -97,17 +81,23 @@ protected void initInteractions() { }); getViewElement().setOnAction(MiniGamesActions.CLICKER_GAME, () -> { - inGameView.changeCenterView(gameEngineView.getRootPane()); + EventData eventData = + new EventData<>(EventType.CHANGE_INGAME_CENTER, WidgetEnum.MINIGAMES_ENGINE); + invoke(eventData); gameEngineController.launchGimmickSession(clickerGame); }); getViewElement().setOnAction(MiniGamesActions.FIND_STOCK, () -> { - inGameView.changeCenterView(gameEngineView.getRootPane()); + EventData eventData = + new EventData<>(EventType.CHANGE_INGAME_CENTER, WidgetEnum.MINIGAMES_ENGINE); + invoke(eventData); gameEngineController.launchGimmickSession(findStockGame); }); getViewElement().setOnAction(MiniGamesActions.TIME_CLICKS, () -> { - inGameView.changeCenterView(gameEngineView.getRootPane()); + EventData eventData = + new EventData<>(EventType.CHANGE_INGAME_CENTER, WidgetEnum.MINIGAMES_ENGINE); + invoke(eventData); gameEngineController.launchGimmickSession(timeInputsGame); }); }