Esempio n. 1
0
        private static bool HasListener(OnEventDispatched eventListener, TType type)
        {
            Delegate[] invocationList = eventsPerType[type].GetInvocationList();
            Delegate   existing       = invocationList.First(listener => listener == (Delegate)eventListener);

            return(existing != null);
        }
Esempio n. 2
0
 public static void RemoveListener(OnEventDispatched eventListener, TType type)
 {
     if (eventsPerType.TryGetValue(type, out OnEventDispatched notification))
     {
         notification -= eventListener;
     }
 }
Esempio n. 3
0
 public static void AddListener(OnEventDispatched eventListener, TType type)
 {
     if (eventsPerType.ContainsKey(type) && HasListener(eventListener, type))
     {
         eventsPerType[type] += eventListener;
     }
     else
     {
         eventsPerType.Add(type, eventListener);
     }
 }