Esempio n. 1
0
 public void TransferTo(int stateType, FSMEvent ev = null)
 {
     foreach (var item in _states)
     {
         if (item.StateType == stateType)
         {
             TransferTo(item, ev);
             return;
         }
     }
 }
Esempio n. 2
0
 public void SendEvent(FSMEvent ev)
 {
     if (CurState == null)
     {
         return;
     }
     if (CurState.OnEvent(ev))
     {
         return;
     }
     _curEvent = ev;
 }
Esempio n. 3
0
        void TransferTo(FSMState state, FSMEvent ev)
        {
            if (state == null)
            {
                return;
            }

            if (state == CurState)
            {
                return;
            }

            if (CheckTransfer(state) == false)
            {
                return;
            }

            CurState.OnExit();
            CurState = state;
            CurState.OnEnter(ev);
        }
Esempio n. 4
0
        protected virtual FSMState StateFromEvent(FSMEvent ev)
        {
            FSMState ret = (ev == null ? null : GetState(ev.FSMStateTypeToTransfer));

            return(CheckTransfer(ret) ? ret : null);
        }