public static void Publish(AEventInfo eventInfo) { System.Type eventInfoType = eventInfo.GetType(); List <EventListener> eventListeners; if (eventDict.TryGetValue(eventInfoType, out eventListeners)) { EventListener[] eventListenerArr = eventListeners.ToArray(); foreach (EventListener eventListener in eventListenerArr) { eventListener(eventInfo); } } }
public void Update() { foreach (KeyValuePair <int, List <Type> > item in inputEvents) { if (this.inputConditional(item.Key)) { foreach (Type type in item.Value) { AEventInfo inputEvent = (AEventInfo)Activator.CreateInstance(type); EventPublisher.Publish(inputEvent); } } } }
void onResetEvent(AEventInfo ei) { this.Reset(); }