private static void SceneLoaded(Scene scene, LoadSceneMode loadSceneMode) { if (!StudioLoaded && scene.name == "Studio") { StudioLoaded = true; if (StudioLoadedChanged != null) { foreach (var callback in StudioLoadedChanged.GetInvocationList()) { try { ((EventHandler)callback)(KoikatuAPI.Instance, EventArgs.Empty); } catch (Exception e) { KoikatuAPI.Logger.LogError(e); } } } foreach (var cat in _customCurrentStateCategories) { CreateCategory(cat); } } }
private static void SceneLoaded(Scene scene, LoadSceneMode loadSceneMode) #endif { if (!StudioLoaded && scene.name == "Studio") { StudioLoaded = true; if (StudioLoadedChanged != null) { foreach (var callback in StudioLoadedChanged.GetInvocationList()) { try { ((EventHandler)callback)(KoikatuAPI.Instance, EventArgs.Empty); } catch (Exception e) { KoikatuAPI.Logger.LogError(e); } } } // Delay to let plugins not using the api create their toggles so we don't overlap KoikatuAPI.Instance.StartCoroutine(DelayedLoadCo()); IEnumerator DelayedLoadCo() { yield return(null); foreach (var cat in _customCurrentStateCategories) { CreateCategory(cat); } yield return(null); // todo Only needed for compat with QAB. Can remove once QAB is using this API CustomToolbarButtons.OnStudioLoaded(); } } }