Skip to content

Commit

Permalink
update EventManager
Browse files Browse the repository at this point in the history
  • Loading branch information
hundun000 committed Nov 26, 2023
1 parent 284499e commit ef86723
Showing 1 changed file with 15 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -20,6 +21,7 @@
* Created on 2021/11/12
*/
public class EventManager {
List<IGameStartListener> gameStartListeners = new ArrayList<>();
List<IBuffChangeListener> buffChangeListeners = new ArrayList<>();
List<IAchievementStateChangeListener> achievementStateChangeListeners = new ArrayList<>();
List<INotificationBoardCallerAndCallback> notificationBoardCallerAndCallbacks = new ArrayList<>();
Expand All @@ -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);
}
Expand All @@ -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);
Expand All @@ -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) {
Expand Down

0 comments on commit ef86723

Please sign in to comment.