public static void RemoveListener(OnEventHandlerDelegate listener) { if (!Listeners.ContainsKey(typeof(T))) { return; } Listeners[typeof(T)].Remove(listener); }
public static void RegisterListener(OnEventHandlerDelegate listener) { if (!Listeners.ContainsKey(typeof(T))) { Listeners[typeof(T)] = new List <OnEventHandlerDelegate>(); } Listeners[typeof(T)].Add(listener); }
public static void DispatchEvent(T evt) { if (!Listeners.ContainsKey(typeof(T))) { return; } for (int i = 0; i < Listeners[typeof(T)].Count; i++) { OnEventHandlerDelegate listener = Listeners[typeof(T)][i]; listener.Invoke(evt); } }