public void SendGlobalEvent(GameEvent e) { int key = e.GetEventKey(); if (mEventKeyMap.ContainsKey(key)) { List <ModuleEventEntry> eList = mEventKeyMap[key]; if (eList == null) { return; } for (int i = 0; i < eList.Count; i++) { ModuleEventEntry eventEntry = eList[i]; if (eventEntry == null || eventEntry.callback == null) { continue; } int ret = mEventDlgExecutor.Execute(eventEntry.callback, e); if (ret == (int)EventRet.End) { break; } } } }
public void RegisterModuleEvent(IEventListener eventListener) { eventListener.RegisterEvent(); GameEventMap eMap = eventListener.GetEventMap(); if (eMap == null) { return; } foreach (int key in eMap.GetEventMap().Keys) { if (!mEventKeyMap.ContainsKey(key)) { mEventKeyMap[key] = new List <ModuleEventEntry>(); } ModuleEventEntry eventEntry = new ModuleEventEntry(); eventEntry.callback = eMap.GetEventDlgByKey(key); eventEntry.module = eventListener; mEventKeyMap[key].Add(eventEntry); } }