public void UnregisterListener <TEventDataType>(TEventID eventID, EventListener <TEventDataType> listener) where TEventDataType : IEventData { IEventListeners eventListeners = null; if (m_EventListenerMap.TryGetValue(eventID, out eventListeners)) { (eventListeners as EventListeners <TEventID, TEventDataType>).Remove(listener); } }
public void Dispatch <TEventDataType>(TEventID eventID, TEventDataType eventData) where TEventDataType : IEventData { #if EnableEventDataTypeValidation ValidateEventType(eventID, eventData); #endif IEventListeners eventListeners = null; if (m_EventListenerMap.TryGetValue(eventID, out eventListeners)) { (eventListeners as EventListeners <TEventID, TEventDataType>).Invoke(eventID, eventData); } }
public void RegisterListener <TEventDataType>(TEventID eventID, EventListener <TEventDataType> listener) where TEventDataType : IEventData { IEventListeners eventListeners = null; if (!m_EventListenerMap.TryGetValue(eventID, out eventListeners)) { eventListeners = new EventListeners <TEventID, TEventDataType>(); m_EventListenerMap.Add(eventID, eventListeners); } var listeners = eventListeners as EventListeners <TEventID, TEventDataType>; listeners.Add(listener); }
public void subscribe(IEventListeners subscriber, string type) { this.listeners.Add(subscriber, type); }
public void remove(IEventListeners subscriber) { this.listeners.Remove(subscriber); }