public static void OnTriggerTimer(params object[] args) { if (args == null || args.Length < 2) { return; } string text = args[0] as string; if (!AsyncTrigger.mTriggers.ContainsKey(text)) { return; } AsyncTrigger.TriggerInfo triggerInfo = AsyncTrigger.mTriggers[text]; if (triggerInfo.onTrigger != null) { try { triggerInfo.onTrigger(new object[] { text }); } catch (Exception ex) { LogSystem.LogError(new object[] { ex.ToString() }); } } AsyncTrigger.mTriggers.Remove(text); TimerManager.DestroyTimer(text); }
public static void Trigger(string strTriggerName, AsyncTrigger.OnTrigger onTrigger, params object[] args) { if (!AsyncTrigger.mTriggers.ContainsKey(strTriggerName)) { return; } AsyncTrigger.TriggerInfo triggerInfo = AsyncTrigger.mTriggers[strTriggerName]; triggerInfo.iTriggerCount--; if (triggerInfo.iTriggerCount > 0) { return; } if (onTrigger != null) { try { onTrigger(args); } catch (Exception ex) { LogSystem.LogError(new object[] { ex.ToString() }); } } AsyncTrigger.mTriggers.Remove(strTriggerName); }
public static bool CreateTrigger(string strTriggerName, int iTriggerCount = 1) { if (AsyncTrigger.mTriggers.ContainsKey(strTriggerName)) { return(false); } AsyncTrigger.TriggerInfo triggerInfo = new AsyncTrigger.TriggerInfo(); triggerInfo.strTriggerName = strTriggerName; triggerInfo.iTriggerCount = iTriggerCount; AsyncTrigger.mTriggers.Add(strTriggerName, triggerInfo); return(true); }
public static bool CreateTimeTrigger(string strTriggerName, float fDelayTime, AsyncTrigger.OnTrigger onTrigger, params object[] args) { if (AsyncTrigger.mTriggers.ContainsKey(strTriggerName)) { return(false); } AsyncTrigger.TriggerInfo triggerInfo = new AsyncTrigger.TriggerInfo(); triggerInfo.strTriggerName = strTriggerName; triggerInfo.onTrigger = onTrigger; triggerInfo.args = args; AsyncTrigger.mTriggers.Add(strTriggerName, triggerInfo); TimerManager.AddTimer(strTriggerName, fDelayTime, new TimerManager.TimerManagerHandlerArgs(AsyncTrigger.OnTriggerTimer), new object[] { strTriggerName, onTrigger }); return(true); }