public static void switchScreens(GameScreenType newType, string levelName)
        {
            if (manager == null)
            {
                return;
            }

            if (newType == GameScreenType.SplashScreen)
            {
                currentNode = new SplashScreenState(manager);
            }
            else if (newType == GameScreenType.Credits)
            {
                currentNode = new CreditsScreenState(manager);
            }
            else if (newType == GameScreenType.Level && levelName != null)
            {
                Game1.levelLoader.Unload();
                currentNode = new LevelState(Game1.levelLoader, levelName);
            }
            else if (newType == GameScreenType.Menu)
            {
                switch (levelName)
                {
                    case "TitleScreenMenu":
                        currentNode = new TitleScreenMenuState(manager, false, true);
                        break;
                    case "TitleScreenMenu_fromOptions":
                        currentNode = new TitleScreenMenuState(manager, true, false);
                        break;
                    case "TitleScreenMenu_fromLevelSelect":
                        currentNode = new TitleScreenMenuState(manager, true, false);
                        break;
                    case "TitleScreenMenu_fromPause":
                        currentNode = new TitleScreenMenuState(manager, false, true);
                        ((TitleScreenMenuState)currentNode).showPressButtonDialog = false;
                        break;
                    case "GameOptionsMenu":
                        currentNode = new OptionsMenuState(manager);
                        break;
                    case "LevelSelectMenu":
                        currentNode = new LevelSelectMenuState(manager);
                        break;
                    case "BetaMenu":
                        currentNode = new BetaMenuState(manager);
                        break;
                    default:
                        break;
                }
            }
            else
            {
                //
            }
        }
        public static void nextLevel()
        {
            if (manager == null)
            {
                return;
            }

            if (!(currentNode is LevelState))
            {
                return;
            }

            LevelState.checkPointTouched = false;

            Game1.CurrentLevel = (Game1.CurrentLevel + 1) % Game1.levelNames.Length;

            if (Game1.CurrentLevel > Game1.MagnetBoySaveData.furthestLevelUnlocked)
            {
                Game1.MagnetBoySaveData.furthestLevelUnlocked = Game1.CurrentLevel;
            }

            if (Game1.CurrentLevel != 0)
            {
                Game1.levelLoader.Unload();
                currentNode = new LevelState(Game1.levelLoader, Game1.levelFileNames[Game1.CurrentLevel]);
            }
            else
            {
                currentNode = new CreditsScreenState(manager);
            }
        }