public static void RemoveListener(EEvent type, GlobalEventHandler listener) { if (IsTriggingEvent) { allPendingListeners.Enqueue(new ListenerInfo(false, type, listener)); return; } var itype = (int)type; if (allListeners.TryGetValue(itype, out var tmplst)) { if (tmplst.Remove(listener)) { if (tmplst.Count == 0) { allListeners.Remove(itype); } return; } } //Debug.LogError("Try remove a not exist listner " + type); }
public void SendEvent(EEvent e, params object[] args) { foreach (XGlobalEventHandler handler in m_AllGlobalHandler[(int)e]) { handler(e, args); } }
public static void RemoveListener(EEvent type, GlobalEventHandler listener) { bool isTriggingEvent = EventHelper.IsTriggingEvent; if (isTriggingEvent) { EventHelper.allPendingListeners.Enqueue(new EventHelper.ListenerInfo(false, type, listener)); } else { List <GlobalEventHandler> list; bool flag = EventHelper.allListeners.TryGetValue((int)type, out list); if (flag) { bool flag2 = list.Remove(listener); if (flag2) { bool flag3 = list.Count == 0; if (flag3) { EventHelper.allListeners.Remove((int)type); } } } } }
public static bool IsIn(this EEvent ev, params EEvent[] evs) { if (evs == null) { throw new ArgumentNullException(); } return(evs.Contains(ev)); }
public static void RemoveAllListener(EEvent type) { if (IsTriggingEvent) { allNeedRemoveTypes.Enqueue(type); return; } allListeners.Remove((int)type); }
protected virtual void DefComEventProc(EEvent eEvent) { switch (eEvent) { case EEvent.Detroyed: NodeGraph.ngLinkManager.RemoveLinkByBegin(this.ID); break; } InfoComEvent(eEvent); }
//Event public override void NodeEventProc(EEvent eEvent) { switch (eEvent) { case EEvent.Selected: VarManager.Instance.SelectVar(BaseVar.ID); break; } DefNodeEventProc(eEvent); }
private void InterUnregisterEvent(EEvent evt, Delegate callback) { if (eventDic.ContainsKey(evt)) { eventDic[evt].Remove(callback); if (eventDic[evt].Count == 0) { eventDic.Remove(evt); } } }
public void PostEvent <T>(EEvent evt, T arg) { List <Delegate> eventList = GetEventList(evt); if (eventList != null) { foreach (Delegate callback in eventList) { ((Action <T>)callback)(arg); } } }
/// <summary> /// 获取所有事件 /// </summary> /// <param name="evt"></param> /// <returns></returns> private List <Delegate> GetEventList(EEvent evt) { if (eventDic.ContainsKey(evt)) { List <Delegate> tempList = eventDic[evt]; if (null != tempList) { return(tempList); } } return(null); }
public static void RemoveAllListener(EEvent type) { bool isTriggingEvent = EventHelper.IsTriggingEvent; if (isTriggingEvent) { EventHelper.allNeedRemoveTypes.Enqueue(type); } else { EventHelper.allListeners.Remove((int)type); } }
/* * ポインタのイベントハンドラのコルーチンを継続します。 */ void ContinuePointerEventLoop(EEvent event_type, PointerEventArgs e) { if (PointerEventLoop != null) { // ポインタのイベントハンドラの実行中の場合 // イベントの型とイベントをセットします。 PointerEventType = event_type; CurrentPointerEvent = e; // コルーチンを継続します。 PointerEventLoop.MoveNext(); } }
public static void Trigger(EEvent type, object param = null) { var itype = (int)type; if (allListeners.TryGetValue(itype, out var tmplst)) { IsTriggingEvent = true; foreach (var listener in tmplst) { listener?.Invoke(param); } } IsTriggingEvent = false; }
public static void Trigger(EEvent type, object param = null) { bool isTriggingEvent = EventHelper.IsTriggingEvent; if (isTriggingEvent) { EventHelper.allPendingMsgs.Enqueue(new EventHelper.MsgInfo(type, param)); } else { List <GlobalEventHandler> list; bool flag = EventHelper.allListeners.TryGetValue((int)type, out list); if (flag) { EventHelper.IsTriggingEvent = true; foreach (GlobalEventHandler globalEventHandler in list.ToArray()) { if (globalEventHandler != null) { globalEventHandler(param); } } } EventHelper.IsTriggingEvent = false; while (EventHelper.allPendingListeners.Count > 0) { EventHelper.ListenerInfo listenerInfo = EventHelper.allPendingListeners.Dequeue(); bool isRegister = listenerInfo.isRegister; if (isRegister) { EventHelper.AddListener(listenerInfo.type, listenerInfo.param); } else { EventHelper.RemoveListener(listenerInfo.type, listenerInfo.param); } } while (EventHelper.allNeedRemoveTypes.Count > 0) { EEvent type2 = EventHelper.allNeedRemoveTypes.Dequeue(); EventHelper.RemoveAllListener(type2); } while (EventHelper.allPendingMsgs.Count > 0) { EventHelper.MsgInfo msgInfo = EventHelper.allPendingMsgs.Dequeue(); EventHelper.Trigger(msgInfo.type, msgInfo.param); } } }
protected virtual void DefNodeEventProc(EEvent eEvent) { switch (eEvent) { case EEvent.LClicked: case EEvent.RClicked: InfoComEvent(eEvent); break; case EEvent.Detroyed: InfoComEvent(eEvent); OnNodeDetroyed(); break; } }
private void InterRegisterEvent(EEvent evt, Delegate callback) { if (eventDic.ContainsKey(evt)) { if (eventDic[evt].IndexOf(callback) < 0) { eventDic[evt].Add(callback); } } else { eventDic.Add(evt, new List <Delegate>() { callback }); } }
public static void Trigger(EEvent type, object param = null) { if (IsTriggingEvent) { allPendingMsgs.Enqueue(new MsgInfo(type, param)); return; } var itype = (int)type; if (allListeners.TryGetValue(itype, out var tmplst)) { IsTriggingEvent = true; foreach (var listener in tmplst.ToArray()) //TODO 替换成其他更好的方式 避免gc { listener?.Invoke(param); } } IsTriggingEvent = false; while (allPendingListeners.Count > 0) { var msgInfo = allPendingListeners.Dequeue(); if (msgInfo.isRegister) { AddListener(msgInfo.type, msgInfo.param); } else { RemoveListener(msgInfo.type, msgInfo.param); } } while (allNeedRemoveTypes.Count > 0) { var rmType = allNeedRemoveTypes.Dequeue(); RemoveAllListener(rmType); } while (allPendingMsgs.Count > 0) { var msgInfo = allPendingMsgs.Dequeue(); Trigger(msgInfo.type, msgInfo.param); } }
public void PostEvent <T1, T2, T3, T4>(EEvent evt, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { List <Delegate> eventList = GetEventList(evt); if (eventList != null) { foreach (Delegate callback in eventList) { try { ((Action <T1, T2, T3, T4>)callback)(arg1, arg2, arg3, arg4); } catch (Exception e) { Logger.Error(e.Message); } } } }
public void PostEvent(EEvent evt) { List <Delegate> eventList = GetEventList(evt); if (eventList != null) { foreach (Delegate callback in eventList) { try { ((Action)callback)(); } catch (Exception e) { Debug.LogError(e.Message); } } } }
public void PostEvent <T1, T2>(EEvent evt, T1 arg1, T2 arg2) { List <Delegate> eventList = GetEventList(evt); if (eventList != null) { foreach (Delegate callback in eventList) { try { ((Action <T1, T2>)callback)(arg1, arg2); } catch (Exception e) { Debug.LogError(e.Message); } } } }
public void PostEvent <T>(EEvent evt, T arg) { List <Delegate> eventList = GetEventList(evt); if (eventList != null) { foreach (Delegate callback in eventList) { try { ((Action <T>)callback)(arg); } catch (Exception e) { Debug.LogError(e.Message + ", method name : " + callback.Method); } } } }
public static void AddListener(EEvent type, GlobalEventHandler listener) { if (IsTriggingEvent) { allPendingListeners.Enqueue(new ListenerInfo(true, type, listener)); return; } var itype = (int)type; if (allListeners.TryGetValue(itype, out var tmplst)) { tmplst.Add(listener); } else { var lst = new List <GlobalEventHandler>(); lst.Add(listener); allListeners.Add(itype, lst); } }
public static void AddListener(EEvent type, GlobalEventHandler listener) { #if _DEBUG_EVENT_TRIGGER if (IsTriggingEvent) { Debug.LogError("Error!!! can not modify allListeners when was Trigger Event"); } #endif var itype = (int)type; if (allListeners.TryGetValue(itype, out var tmplst)) { tmplst.Add(listener); } else { var lst = new List <GlobalEventHandler>(); lst.Add(listener); allListeners.Add(itype, lst); } }
public static string ToMyStringFull(this EEvent ev) { switch (ev) { case EEvent.error: return("kļūda"); case EEvent.nenoteikts: return("?"); case EEvent.pienuzsk: return("pieņemts uzskaitē"); case EEvent.iegeks: return("iegāde"); case EEvent.ieg: return("iegāde"); case EEvent.izv: return("izveide"); case EEvent.eks: return("nodots ekspluatācijā"); case EEvent.vieta: return("pārvietots"); case EEvent.parvert: return("pārvērtēšana"); case EEvent.rekat: return("kategorijas maiņa"); case EEvent.kapit: return("kapitālremonts"); case EEvent.nelieto: return("pārtrauc lietošanu"); case EEvent.lieto: return("atsāk lietošanau"); case EEvent.likvid: return("likvidēts"); case EEvent.noliet: return("nolietojums"); case EEvent.apr: return("aprēķins"); default: throw new ArgumentOutOfRangeException(); } }
public static string ToMyString(this EEvent ev) { switch (ev) { case EEvent.error: return("kļūda"); case EEvent.nenoteikts: return("nenoteikts"); case EEvent.pienuzsk: return("pieņ.uzsk"); case EEvent.iegeks: return("iegeks"); case EEvent.ieg: return("ieg"); case EEvent.izv: return("izv"); case EEvent.eks: return("eks"); case EEvent.vieta: return("vieta"); case EEvent.parvert: return("parvert"); case EEvent.rekat: return("rekat"); case EEvent.kapit: return("kapit"); case EEvent.nelieto: return("nelieto"); case EEvent.lieto: return("lieto"); case EEvent.likvid: return("likvid"); case EEvent.noliet: return("noliet"); case EEvent.apr: return("apr"); default: throw new ArgumentOutOfRangeException(); } }
public static void RemoveListener(EEvent type, GlobalEventHandler listener) { #if _DEBUG_EVENT_TRIGGER if (IsTriggingEvent) { Debug.LogError("Error!!! can not modify allListeners when was Trigger Event"); } #endif var itype = (int)type; if (allListeners.TryGetValue(itype, out var tmplst)) { if (tmplst.Remove(listener)) { if (tmplst.Count == 0) { allListeners.Remove(itype); } return; } } Debug.LogError("Try remove a not exist listner " + type); }
//Event public override void NodeEventProc(EEvent eEvent) { System.DateTime timeNow = System.DateTime.Now; System.TimeSpan span = timeNow - m_PrevSelectTime; m_PrevSelectTime = System.DateTime.Now; switch (eEvent) { case EEvent.Selected: if (span.TotalMilliseconds > 200) { Logger.Info("Select"); VarManager.Instance.SelectVar(BaseVar.ID); } break; case EEvent.LClicked: VarManager.Instance.SelectVar(BaseVar.ID); break; } DefNodeEventProc(eEvent); }
public static void AddListener(EEvent type, GlobalEventHandler listener) { bool isTriggingEvent = EventHelper.IsTriggingEvent; if (isTriggingEvent) { EventHelper.allPendingListeners.Enqueue(new EventHelper.ListenerInfo(true, type, listener)); } else { List <GlobalEventHandler> list; bool flag = EventHelper.allListeners.TryGetValue((int)type, out list); if (flag) { list.Add(listener); } else { List <GlobalEventHandler> list2 = new List <GlobalEventHandler>(); list2.Add(listener); EventHelper.allListeners.Add((int)type, list2); } } }
public void UnregisterEvent(EEvent evt, Action callback) { Delegate tempDelegate = callback; InterUnregisterEvent(evt, tempDelegate); }
public void RegisterEvent <T1, T2, T3, T4>(EEvent evt, Action <T1, T2, T3, T4> callback) { InterRegisterEvent(evt, callback); }
public void ProcessEvent(EEvent _event) { m_Event = _event; ProcessStateMachine(); }
public CStateTransition(EState _state, EEvent _event, StateFunction _function) { m_State = _state; m_Event = _event; m_Function = _function; }