public bool QueueState(StateKey id, object context, bool forceStateChange) { if (m_wasShutdown) { return(false); } IFsmState <StateKey> queuedState = m_registeredStates[id]; if (!queuedState.CanEnterState(CurrentStateId)) { return(false); } this.m_context = context; this.m_forceStateChange = forceStateChange; this.m_queuedState = queuedState; return(true); }