private void Load()
        {
            Log.Info("Starting asset loading thread");

            SaveManager.Load(gameArea, SaveType.Global);
            checkFullscreen = true;
            progress++;

            var t = DateTime.Now.Millisecond;
            var c = DateTime.Now.Millisecond;

            Assets.Load(ref progress);
            Log.Info($"Assets took {(DateTime.Now.Millisecond - c) / 1000f} seconds");
            c = DateTime.Now.Millisecond;

            Dialogs.Load();
            progress++;
            CommonAse.Load();
            progress++;
            ImGuiHelper.BindTextures();
            progress++;
            Shaders.Load();
            progress++;
            Prefabs.Load();
            progress++;
            Items.Load();
            progress++;
            LootTables.Load();
            progress++;
            Mods.Load();
            progress++;             // Should be 13 here
            Log.Info($"Custom assets took {(DateTime.Now.Millisecond - c) / 1000f} seconds");

            Log.Info("Done loading assets! Loading level now.");

            Lights.Init();
            Physics.Init();
            gameArea = new Area();

            Run.Level = null;
            Tilesets.Load();
            progress++;

            Achievements.Load();
            c = DateTime.Now.Millisecond;

            if (!LoadEditor)
            {
                SaveManager.Load(gameArea, SaveType.Game);
                progress++;
                Log.Info($"Game took {(DateTime.Now.Millisecond - c) / 1000f} seconds");
                c = DateTime.Now.Millisecond;

                Rnd.Seed = $"{Run.Seed}_{Run.Depth}";

                SaveManager.Load(gameArea, SaveType.Level);
                progress++;
                Log.Info($"Level took {(DateTime.Now.Millisecond - c) / 1000f} seconds");
                c = DateTime.Now.Millisecond;

                if (Run.Depth > 0)
                {
                    SaveManager.Load(gameArea, SaveType.Player);
                }
                else
                {
                    SaveManager.Generate(gameArea, SaveType.Player);
                }

                Log.Info($"Player took {(DateTime.Now.Millisecond - c) / 1000f}");
            }

            progress++;             // Should be 18 here
            Log.Info($"Done loading level! ({(DateTime.Now.Millisecond - t) / 1000f} seconds) Going to menu.");

            Engine.AssetsLoaded?.Invoke();
            ready = true;
        }