IEnumerator RebuildLevelRoutine()
        {
            SetLoadingTextVisible(true);
            loadingText.text = "";
            AppendLoadingText("Generating Level... ");
            dungeon.DestroyDungeon();
            NotifyDestroyed();
            yield return(0);

            dungeon.Build();
            yield return(0);

            NotifyBuild();
            yield return(0);

            AppendLoadingText("DONE!\n");
            AppendLoadingText("Building Navigation... ");
            yield return(0);                    // Wait for a frame to show our loading text

            RebuildNavigation();
            AppendLoadingText("DONE!\n");
            AppendLoadingText("Spawning NPCs...");
            yield return(0);                    // Wait for a frame to show our loading text

            npcSpawner.RebuildNPCs();
            AppendLoadingText("DONE!\n");
            SetLoadingTextVisible(false);
            yield return(null);
        }