async Task Init() { state = State.Loading; await loader.LoadWrapper(); if (state == State.Error) { return; } stopwatch.Start(); state = State.Initializing; detailedState = "Initializing sectors"; await WaitIfNecessary(); sectorManager.Init(); detailedState = "Initializing graphs"; await WaitIfNecessary(); graphManager.Init(); detailedState = "Initializing lights"; await WaitIfNecessary(); lightManager.Init(); detailedState = "Initializing persos"; await InitPersos(); sectorManager.InitLights(); detailedState = "Initializing camera"; await WaitIfNecessary(); InitCamera(); detailedState = "Initializing portals"; await WaitIfNecessary(); portalManager.Init(); /*if (viewCollision)*/ UpdateViewCollision(); if (loader.cinematicsManager != null) { detailedState = "Initializing cinematics"; await new WaitForEndOfFrame(); InitCinematics(); } detailedState = "Finished"; stopwatch.Stop(); state = State.Finished; loadingScreen.Active = false; if (ExportAfterLoad) { MapExporter e = new MapExporter(this.loader, ExportPath); e.Export(); Application.Quit(); } }