コード例 #1
0
ファイル: TaskCounter.cs プロジェクト: Lawrencehaveadream/XJS
 /// <summary>
 /// 到下一步
 /// </summary>
 /// <param name="stepVal"></param>
 /// <param name="fsmStaDef"></param>
 public void StepNext(int stepVal, FSMStaDef fsmStaDef = FSMStaDef.RUN)
 {
     if (execute > 0 && fsmStaDef.HasFlag(logicTask.Manager.FSM.Status.ID))
     {
         ImmediateStepNext(stepVal);
     }
 }
コード例 #2
0
ファイル: FSMDef.cs プロジェクト: Lawrencehaveadream/HYMalar
 /// <summary>
 /// 根据标识符表示的状态
 /// </summary>
 /// <param name="state"></param>
 /// <returns></returns>
 public State this[FSMStaDef state]
 {
     get
     {
         Debug.Assert(StateMap.ContainsKey(state.ToString()), "there is no state");
         return(this.StateMap[state.ToString()]);
     }
 }
コード例 #3
0
ファイル: TaskCounter.cs プロジェクト: Lawrencehaveadream/XJS
        /// <summary>
        /// 延时一段时间后进入下一步
        /// </summary>
        /// <param name="stepVal"></param>
        /// <param name="delay"></param>
        /// <param name="fsmStaDef"></param>
        public void StepNext(int stepVal, int delay, FSMStaDef fsmStaDef = FSMStaDef.RUN)
        {
            if (execute > 0 && fsmStaDef.HasFlag(logicTask.Manager.FSM.Status.ID))
            {
                if (stepDelayTime == DateTime.MinValue)
                {
                    stepDelayTime = DateTime.Now;
                }

                if ((DateTime.Now - stepDelayTime).TotalMilliseconds > delay)
                {
                    ImmediateStepNext(stepVal);
                    stepDelayTime = DateTime.MinValue;
                }
            }
        }
コード例 #4
0
ファイル: FSMDef.cs プロジェクト: Lawrencehaveadream/HYMalar
 /// <summary>
 /// 根据标识符切换状态
 /// </summary>
 /// <param name="fSMStaDef"></param>
 public void Change(FSMStaDef fSMStaDef)
 {
     Change(fSMStaDef.ToString());
 }