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);
        }
Example #4
0
 public void subscribe(IEventListeners subscriber, string type)
 {
     this.listeners.Add(subscriber, type);
 }
Example #5
0
 public void remove(IEventListeners subscriber)
 {
     this.listeners.Remove(subscriber);
 }