public void SetState(GameState state)
        {
            ExitState();
            var lastState = State;

            State = state;

            EventDispatcher.Dispatch(GameStateChanged.Prepare(State, lastState));

            EnterState();
        }