diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/LevelProgressManager.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/LevelProgressManager.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/LevelProgressManager.cs b/Thronefall_v1.0/Decompile/LevelProgressManager.cs new file mode 100644 index 0000000..500bf43 --- /dev/null +++ b/Thronefall_v1.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); + } +} |