public void UpdateStack() { if (m_stateStack.Count > 0) { FSStateBase state = m_stateStack.Peek(); state.UpdateState(); if (state.IsDismissed()) { m_stateStack.Pop(); } } }
public void PopState(FSStateBase state) { Debug.Assert(m_stateStack.Count > 0 && m_stateStack.Peek() == state, "Trying to pop non active state"); m_stateStack.Peek().EndActiveState(); }
public void PushState(FSStateBase state) { Debug.Assert(m_stateStack.Count == 0 || m_stateStack.Peek() != state, "Trying to push already active state"); m_stateStack.Push(state); }