/**********************************************************************************************/ /* PUBLIC METHODS */ /**********************************************************************************************/ #region PUBLIC_METHODS ///<summary> /// /// </summary> public void AddHandler(GameEvent.GameEventType type, EventHandler handler) { if (!_eventHandlers.ContainsKey(type)) { _eventHandlers.Add(type, new List <EventHandler>()); } _eventHandlers [type].Add(handler); }
///<summary> /// /// </summary> public void DeleteHandler(GameEvent.GameEventType type, EventHandler handler) { List <EventHandler> handlers = _eventHandlers [type]; if (handlers != null) { handlers.Remove(handler); } }
public void SendEvent(GameEvent gameEvent) { GameEvent.GameEventType gameEventType = gameEvent.EventType; List <GameEventReceiver> currentReceivers = EventReceiverMap[gameEventType]; foreach (GameEventReceiver receiver in currentReceivers) { receiver.ReactToEvent(gameEvent); } }
public void BindWithEvent( GameEventReceiver receiver, GameEvent.GameEventType gameEventType) { List <GameEventReceiver> currentReceivers = EventReceiverMap[gameEventType]; if (!currentReceivers.Contains(receiver)) { currentReceivers.Add(receiver); } }