public void RemoveListener(Listener.EventListenerDelegate observer, IEvent _name) { Listener listener = new Listener(observer, _name); List <Listener> notifyList = m_eventsComponents [_name.getKey()] as List <Listener>; if (notifyList != null) { if (notifyList.Contains(listener)) { notifyList.Remove(listener); } if (notifyList.Count == 0) { m_eventsComponents.Remove(_name.getKey()); } } }
public void AddListener(Listener.EventListenerDelegate observer, IEvent _name) { List <Listener> listeners = null; // If this specific notification doesn't exist yet, then create it. if (m_eventsComponents [_name.getKey()] == null) { listeners = new List <Listener> (); m_eventsComponents [_name.getKey()] = listeners; } else { listeners = m_eventsComponents [_name.getKey()] as List <Listener>; } Listener listener = new Listener(observer, _name); // If the list of observers doesn't already contain the one that's registering, the add it. if (!listeners.Contains(listener)) { listeners.Add(listener); } }