From c03e3d7dbc3a7fff86e46fd2868ff0ca8804fa3c Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 1 May 2022 13:33:25 -0400 Subject: [PATCH] Move cache clear to scene unloaded event --- NewHorizons/Main.cs | 15 +++++++++------ NewHorizons/Utility/AudioUtilities.cs | 2 ++ NewHorizons/Utility/ImageUtilities.cs | 2 ++ NewHorizons/Utility/SearchUtilities.cs | 1 + 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 00da82da..ed69b1f5 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -84,6 +84,8 @@ namespace NewHorizons OnStarSystemLoaded = new StarSystemEvent(); SceneManager.sceneLoaded += OnSceneLoaded; + SceneManager.sceneUnloaded += OnSceneUnloaded; + Instance = this; GlobalMessenger.AddListener("PlayerDeath", OnDeath); GlobalMessenger.AddListener("WakeUp", new Callback(OnWakeUp)); @@ -112,9 +114,7 @@ namespace NewHorizons Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => OnSceneLoaded(SceneManager.GetActiveScene(), LoadSceneMode.Single)); Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => _firstLoad = false); Instance.ModHelper.Menus.PauseMenu.OnInit += DebugReload.InitializePauseMenu; - } - - + } public void OnDestroy() { @@ -130,13 +130,16 @@ namespace NewHorizons Instance.OnStarSystemLoaded?.Invoke(Instance.CurrentStarSystem); } - void OnSceneLoaded(Scene scene, LoadSceneMode mode) + private void OnSceneUnloaded(Scene scene) { - Logger.Log($"Scene Loaded: {scene.name} {mode}"); - SearchUtilities.ClearCache(); ImageUtilities.ClearCache(); AudioUtilities.ClearCache(); + } + + private void OnSceneLoaded(Scene scene, LoadSceneMode mode) + { + Logger.Log($"Scene Loaded: {scene.name} {mode}"); _isChangingStarSystem = false; diff --git a/NewHorizons/Utility/AudioUtilities.cs b/NewHorizons/Utility/AudioUtilities.cs index 55486172..ec2204fe 100644 --- a/NewHorizons/Utility/AudioUtilities.cs +++ b/NewHorizons/Utility/AudioUtilities.cs @@ -29,6 +29,8 @@ namespace NewHorizons.Utility public static void ClearCache() { + Logger.Log("Clearing audio cache"); + foreach (var audioClip in _loadedAudioClips.Values) { if (audioClip == null) continue; diff --git a/NewHorizons/Utility/ImageUtilities.cs b/NewHorizons/Utility/ImageUtilities.cs index 5edc882f..2d39f06f 100644 --- a/NewHorizons/Utility/ImageUtilities.cs +++ b/NewHorizons/Utility/ImageUtilities.cs @@ -31,6 +31,8 @@ namespace NewHorizons.Utility public static void ClearCache() { + Logger.Log("Cleaing image cache"); + foreach (var texture in _loadedTextures.Values) { if (texture == null) continue; diff --git a/NewHorizons/Utility/SearchUtilities.cs b/NewHorizons/Utility/SearchUtilities.cs index f3b3017f..f6eafbce 100644 --- a/NewHorizons/Utility/SearchUtilities.cs +++ b/NewHorizons/Utility/SearchUtilities.cs @@ -14,6 +14,7 @@ namespace NewHorizons.Utility public static void ClearCache() { + Logger.Log("Clearing search cache"); CachedGameObjects.Clear(); }