protected string Pop(string newName)
        {
            FSState lastState = mStateStack.Peek();
            string  newState  = null;

            if (newName == null && mStateStack.Count > 1)
            {
                int index = 0;
                foreach (FSState item in mStateStack)
                {
                    if (index++ == mStateStack.Count - 2)
                    {
                        newState = item.StateName;
                    }
                }
            }
            else
            {
                newState = newName;
            }
            string lastStateName = null;

            if (lastState != null)
            {
                lastStateName = lastState.StateName;
                lastState.StateObject.OnExit(newState);
            }
            mStateStack.Pop();
            return(lastStateName);
        }
Exemple #2
0
 public FSEvent(string name, string target, FSState state, FiniteStateMachine owner, FiniteStateMachine.EnterState e, FiniteStateMachine.PushState pu, FiniteStateMachine.PopState po)
 {
     mStateOwner    = state;
     mEventName     = name;
     mTargetState   = target;
     mOwner         = owner;
     eType          = EventType.NONE;
     mEnterDelegate = e;
     mPushDelegate  = pu;
     mPopDelegate   = po;
 }