public static List <string> GetSceneLoaderPaths(SceneLoadScene loader) { var result = new List <string>(); loader.SafeProc(l => result.AddRange(SceneLoadSceneListPathGetter.Value(loader))); return(result); }
public static void OnClickImportPrefix(SceneLoadScene __instance) { if (KK_StudioAutoCloseLoadingSceneWindow.EnableOnImport.Value) { StartLoad(__instance); } }
internal static void StudioInitInfoPost(SceneLoadScene __instance) { _studioInitObject = __instance; if (_folderTreeView.CurrentFolder == null) { _folderTreeView.CurrentFolder = _folderTreeView.DefaultPath; } _folderTreeView.ScrollListToSelected(); }
private static void StartLoad(bool doLoad, SceneLoadScene __instance) { if (!doLoad) { return; } isLoading = true; sceneLoadScene = __instance; }
internal void ScrollToLastLoadedScene(SceneLoadScene sceneLoadScene) { if (!RestoreLoaderPage.Value || sceneLoadScene == null) { return; } if (_scrollToLastLoadedScene != null) { StopCoroutine(_scrollToLastLoadedScene); } _scrollToLastLoadedScene = StartCoroutine(ScrollToLastLoadedSceneCoroutine(sceneLoadScene) .AppendCo(() => _scrollToLastLoadedScene = null)); }
internal static void StudioInitInfoPost(SceneLoadScene __instance) { #if DEBUG //Logger.LogDebug( $"StudioInitInfoPost({__instance})"); #endif _currentSceneFolder = string.Empty; ScenePaths = SceneUtils.GetSceneLoaderPaths(__instance); _normalizedScenePaths = null; if (ScenePaths.Count > 0) { _currentSceneFolder = PathUtils.NormalizePath(Path.GetDirectoryName(ScenePaths[0])); } _sceneLoadScene = __instance; }
private static void SetPage(int pageNum, SceneLoadScene sceneLoadScene = null) { if (sceneLoadScene != null) { try { sceneLoadScene.GetType().GetMethod("SetPage", AccessTools.all) ?.Invoke(sceneLoadScene, new object[] { pageNum }); return; } catch { // fall through } } SceneLoadScenePageSetter.Value(pageNum); }
internal static void StudioInitInfoPost(SceneLoadScene __instance) { try { _sceneLoadScene = __instance; _currentSceneFolder = string.Empty; ScenePaths = SceneUtils.GetSceneLoaderPaths(__instance); _normalizedScenePaths = null; ScenePaths.SafeProc(0, p => _currentSceneFolder = PathUtils.NormalizePath(Path.GetDirectoryName(p))); Instance.SafeProc(i => i.ScrollToLastLoadedScene(__instance)); } catch (Exception err) { Logger.LogException(err, __instance, nameof(StudioInitInfoPost)); } }
internal IEnumerator ScrollToLastLoadedSceneCoroutine(SceneLoadScene sceneLoadScene) { yield return(null); if (sceneLoadScene == null) { yield break; } var lastLoadedScene = GetLastLoadedScene(); var page = Math.Max(0, GetLoaderPageForImage(lastLoadedScene)); SetPage(page, sceneLoadScene); if (sceneLoadScene == null || page == 0) { yield break; } sceneLoadScene.SafeProc(sls => sls.GetComponentsInChildren <ScrollRect>().SafeProc(0, r => { var buttonHeight = -1f; var scrollBarHeight = -1f; r.GetComponentsInChildren <Button>().SafeProc(0, b => b.GetComponent <RectTransform>().SafeProc(rt => buttonHeight = rt.rect.height)); r.verticalScrollbar.SafeProc( sb => sb.GetComponent <RectTransform>().SafeProc(rt => scrollBarHeight = rt.rect.height)); float scrollPos; if (buttonHeight > 0f && scrollBarHeight > 0f) { scrollPos = 1.0f - Mathf.Max(0f, (buttonHeight * (page - 1)) - scrollBarHeight); } else { scrollPos = 1.0f - ((GetPage() + 1f) / GetNumPages(sls)); } r.verticalScrollbar.SafeProc(sb => sb.value = scrollPos); })); }
private static int GetNumPages(SceneLoadScene obj) { return(SceneLoadScenePageNumGetter.Value(obj)); }
public static List <string> GetSceneLoaderPaths(SceneLoadScene loader) { return(loader != null ? new List <string>((IEnumerable <string>)SceneLoadSceneListPath.GetValue(loader)) : new List <string>()); }
internal static void StudioInitInfoPost(SceneLoadScene __instance) { StudioInitObject = __instance; }
public static void OnClickLoadPrefix(SceneLoadScene __instance) => StartLoad(StudioAutoCloseLoadingSceneWindow.EnableOnLoad.Value, __instance);
private static void StartLoad(SceneLoadScene __instance) { isLoading = true; sceneLoadScene = __instance; }
public static void StudioInitInfoPost(SceneLoadScene __instance) { _studioInitObject = __instance; }