/// <summary>
        /// Remove the current screen and adds another.
        /// If we are transitioning to a gameplay screen, we add a loading screen first (unless we are going from a loading screen).
        /// </summary>
        /// <param name="transitionTo">The screen to add</param>
        /// <param name="load">Whether we should call LoadContent on the screen to add</param>
        /// <param name="initialise">Whether we should call Initialise on the screen to add</param>
        public BaseScreen Transition(BaseScreen transitionTo, bool load = true, bool initialise = true)
        {
            DebugUtils.AssertNotNull(CurrentScreen);

            return(Transition(CurrentScreen, transitionTo, load, initialise));
        }