/// <summary> /// Handles the event. /// </summary> /// <param name="eventName">Event name.</param> public void HandleEvent(ushort eventName) { if (mCurState != null && mStateDict[mCurState.Name].TranslationDict.ContainsKey(eventName)) { var tempTranslation = mStateDict[mCurState.Name].TranslationDict[eventName]; tempTranslation.FromState.OnExit(); mCurState = tempTranslation.ToState; tempTranslation.ToState.OnEnter(); } }
/// <summary> /// Start the specified startState. /// </summary> /// <param name="startState">Start state.</param> public void Start(PTFSMState startState) { mCurState = startState; mCurState.OnEnter(); }
/// <summary> /// Adds the translation. /// </summary> /// <param name="fromState">From state.</param> /// <param name="eventName">Event name.</param> /// <param name="toState">To state.</param> public void AddTranslation(PTFSMState fromState, ushort eventName, PTFSMState toState) { mStateDict[fromState.Name].TranslationDict.Add(eventName, new PTFSMTranslation(fromState, eventName, toState)); }
/// <summary> /// Adds the state. /// </summary> /// <param name="state">State.</param> public void AddState(PTFSMState state) { mStateDict.Add(state.Name, state); }
public PTFSMTranslation(PTFSMState fromState, ushort eventName, PTFSMState toState) { FromState = fromState; ToState = toState; EventName = eventName; }
/// <summary> /// Adds the state. /// </summary> /// <param name="name">Name.</param> public void AddState(string name) { mStateDict[name] = new PTFSMState(name); }