Beispiel #1
0
 /// <summary>
 /// Add a new state that will be taken care of
 /// </summary>
 /// <param name="state"></param>
 public void AddState(State state)
 {
     if (!m_states.ContainsKey(state.Name()))
     {
         state.Setup(this);
         m_states.Add(state.Name(), state);
         FSMHelper.Log(LogVerbose, $"New State added : {state.Name()}");
     }
 }
Beispiel #2
0
        /// <summary>
        /// State will be changed immediately.
        /// </summary>
        /// <param name="newState"></param>
        public void ChangeState(string newState)
        {
            if (m_states.ContainsKey(newState) && !string.Equals(CurrentState, newState))
            {
                m_previousState = m_currentState;
                m_previousState?.OnLeave();

                m_currentState = m_states[newState];
                m_currentState.OnEnter();
                CurrentState = newState;
                FSMHelper.Log(LogVerbose, $"State changed from {m_previousState.Name()} to {m_currentState.Name()}");
            }
        }
Beispiel #3
0
 /// <summary>
 /// True if in state equals current state, otherwise false.
 /// </summary>
 public bool IsInState(string state)
 {
     return(string.Equals(m_currentState.Name(), state));
 }