diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
| commit | 8b1fc7063b387542803c6bc214ccf8acb32870bd (patch) | |
| tree | d310eb99872c8215f1c1f67731ec21f0915cd778 /Thronefall_1_0/Decompile/LevelProgressManager.cs | |
| parent | 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_0/Decompile/LevelProgressManager.cs')
| -rw-r--r-- | Thronefall_1_0/Decompile/LevelProgressManager.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Thronefall_1_0/Decompile/LevelProgressManager.cs b/Thronefall_1_0/Decompile/LevelProgressManager.cs new file mode 100644 index 0000000..500bf43 --- /dev/null +++ b/Thronefall_1_0/Decompile/LevelProgressManager.cs @@ -0,0 +1,57 @@ +using UnityEngine; +using UnityEngine.SceneManagement; + +public class LevelProgressManager : MonoBehaviour +{ + public static LevelProgressManager instance; + + [SerializeField] + private SceneNameToLevelData sceneNameToLevelData = new SceneNameToLevelData(); + + public SceneNameToLevelData SceneNameToLevelData => sceneNameToLevelData; + + public bool StartsWithUnderscore(string input) + { + if (string.IsNullOrEmpty(input)) + { + return false; + } + return input[0] == '_'; + } + + private void Awake() + { + if ((bool)instance) + { + Object.Destroy(base.gameObject); + return; + } + instance = this; + Object.DontDestroyOnLoad(base.transform.root.gameObject); + } + + public LevelData GetLevelDataForScene(string _sceneName) + { + if (_sceneName == SceneTransitionManager.instance.levelSelectScene) + { + return null; + } + if (StartsWithUnderscore(_sceneName)) + { + return null; + } + if (sceneNameToLevelData.ContainsKey(_sceneName)) + { + return sceneNameToLevelData[_sceneName]; + } + LevelData levelData = new LevelData(); + sceneNameToLevelData.Add(_sceneName, levelData); + return levelData; + } + + public LevelData GetLevelDataForActiveScene() + { + string sceneName = SceneManager.GetActiveScene().name; + return GetLevelDataForScene(sceneName); + } +} |
