From ef86723e001282184bbf889952db63f0231d7e97 Mon Sep 17 00:00:00 2001 From: hundun Date: Sun, 26 Nov 2023 12:41:21 +0800 Subject: [PATCH] update EventManager --- .../framework/model/manager/EventManager.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/EventManager.java b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/EventManager.java index 5a69ded..b18c7e2 100644 --- a/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/EventManager.java +++ b/idleshare/gamelib/src/hundun/gdxgame/idleshare/gamelib/framework/model/manager/EventManager.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; +import hundun.gdxgame.gamelib.starter.listerner.IGameStartListener; import hundun.gdxgame.idleshare.gamelib.framework.IdleGameplayContext; import hundun.gdxgame.idleshare.gamelib.framework.callback.IAchievementBoardCallback; import hundun.gdxgame.idleshare.gamelib.framework.callback.IAchievementStateChangeListener; @@ -20,6 +21,7 @@ * Created on 2021/11/12 */ public class EventManager { + List gameStartListeners = new ArrayList<>(); List buffChangeListeners = new ArrayList<>(); List achievementStateChangeListeners = new ArrayList<>(); List notificationBoardCallerAndCallbacks = new ArrayList<>(); @@ -33,6 +35,9 @@ public EventManager(IdleGameplayContext gameContext) { } public void registerListener(Object listener) { + if (listener instanceof IGameStartListener && !gameStartListeners.contains(listener)) { + gameStartListeners.add((IGameStartListener) listener); + } if (listener instanceof IBuffChangeListener && !buffChangeListeners.contains(listener)) { buffChangeListeners.add((IBuffChangeListener) listener); } @@ -54,6 +59,9 @@ public void registerListener(Object listener) { public void unregisterListener(Object listener) { + if (listener instanceof IGameStartListener) { + gameStartListeners.remove((IGameStartListener) listener); + } if (listener instanceof IBuffChangeListener) { buffChangeListeners.remove((IBuffChangeListener)listener); @@ -76,6 +84,13 @@ public void unregisterListener(Object listener) } } + public void notifyGameStart() { + gameContext.getFrontEnd().log(this.getClass().getSimpleName(), "notifyGameStart"); + for (IGameStartListener listener : gameStartListeners) { + listener.onGameStart(); + } + } + public void notifyBuffChange() { gameContext.getFrontEnd().log(this.getClass().getSimpleName(), "notifyBuffChange"); for (IBuffChangeListener listener : buffChangeListeners) {