public void SetState(GameState state) { ExitState(); var lastState = State; State = state; EventDispatcher.Dispatch(GameStateChanged.Prepare(State, lastState)); EnterState(); }