Exemple #1
0
        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);
     }
 }
Exemple #3
0
 internal static void StudioInitInfoPost(SceneLoadScene __instance)
 {
     _studioInitObject = __instance;
     if (_folderTreeView.CurrentFolder == null)
     {
         _folderTreeView.CurrentFolder = _folderTreeView.DefaultPath;
     }
     _folderTreeView.ScrollListToSelected();
 }
Exemple #4
0
        private static void StartLoad(bool doLoad, SceneLoadScene __instance)
        {
            if (!doLoad)
            {
                return;
            }

            isLoading      = true;
            sceneLoadScene = __instance;
        }
Exemple #5
0
 internal void ScrollToLastLoadedScene(SceneLoadScene sceneLoadScene)
 {
     if (!RestoreLoaderPage.Value || sceneLoadScene == null)
     {
         return;
     }
     if (_scrollToLastLoadedScene != null)
     {
         StopCoroutine(_scrollToLastLoadedScene);
     }
     _scrollToLastLoadedScene = StartCoroutine(ScrollToLastLoadedSceneCoroutine(sceneLoadScene)
                                               .AppendCo(() => _scrollToLastLoadedScene = null));
 }
Exemple #6
0
            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;
            }
Exemple #7
0
        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));
                }
            }
Exemple #9
0
        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);
            }));
        }
Exemple #10
0
 private static int GetNumPages(SceneLoadScene obj)
 {
     return(SceneLoadScenePageNumGetter.Value(obj));
 }
Exemple #11
0
 public static List <string> GetSceneLoaderPaths(SceneLoadScene loader)
 {
     return(loader != null ? new List <string>((IEnumerable <string>)SceneLoadSceneListPath.GetValue(loader)) : new List <string>());
 }
Exemple #12
0
 internal static void StudioInitInfoPost(SceneLoadScene __instance)
 {
     StudioInitObject = __instance;
 }
Exemple #13
0
 public static void OnClickLoadPrefix(SceneLoadScene __instance)
 => StartLoad(StudioAutoCloseLoadingSceneWindow.EnableOnLoad.Value, __instance);
 private static void StartLoad(SceneLoadScene __instance)
 {
     isLoading      = true;
     sceneLoadScene = __instance;
 }
Exemple #15
0
 public static void StudioInitInfoPost(SceneLoadScene __instance)
 {
     _studioInitObject = __instance;
 }