private static void ProccessingEvent(ProEvent proEvent) { if (proEvents == null || !proEvents.ContainsKey(proEvent)) return; proEvents[proEvent].ForEach(x => x.Invoke()); }
public static void BroadcastEvent(ProEvent proEvent, ProEventSystemArgs e) { if (pendingEvents == null) pendingEvents = new Queue<ProEvent>(); pendingEvents.Enqueue(proEvent); }
public static void RemoveListener(ProEvent proEvent, Action<ProEventSystemArgs> action) { if (proEvents == null || !proEvents.ContainsKey(proEvent)) return; proEvents[proEvent].Remove(action); if (proEvents[proEvent].Count == 0) proEvents.Remove(proEvent); }
public static void AddListener(ProEvent proEvent, Action<ProEventSystemArgs> action) { if (proEvents == null) proEvents = new Dictionary<ProEvent, List<Action<ProEventSystemArgs>>>(); if (!proEvents.ContainsKey(proEvent)) proEvents.Add(proEvent, new List<Action<ProEventSystemArgs>>()); proEvents[proEvent].Add(action); }