From 177eea9e3604e800c3d36ac7aac1b1c24f284013 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Wed, 28 Dec 2022 12:28:29 -0800 Subject: [PATCH] do proper null checking on sectors --- NewHorizons/Handlers/StreamingHandler.cs | 32 ++++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/NewHorizons/Handlers/StreamingHandler.cs b/NewHorizons/Handlers/StreamingHandler.cs index 9aed55ef..7cb6abf5 100644 --- a/NewHorizons/Handlers/StreamingHandler.cs +++ b/NewHorizons/Handlers/StreamingHandler.cs @@ -24,16 +24,23 @@ namespace NewHorizons.Handlers { var group = GetStreamingGroup(name); - sector.OnOccupantEnterSector += _ => + if (sector) { - if (sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe)) - group.RequestGeneralAssets(); - }; - sector.OnOccupantExitSector += _ => + sector.OnOccupantEnterSector += _ => + { + if (sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe)) + group.RequestGeneralAssets(); + }; + sector.OnOccupantExitSector += _ => + { + if (!sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe)) + group.ReleaseGeneralAssets(); + }; + } + else { - if (!sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe)) - group.ReleaseGeneralAssets(); - }; + group.RequestGeneralAssets(); + } } /// @@ -87,8 +94,6 @@ namespace NewHorizons.Handlers foreach (var assetBundle in assetBundles) { - StreamingManager.LoadStreamingAssets(assetBundle); - // Track the sector even if its null. null means stay loaded forever if (!_sectorCache.TryGetValue(assetBundle, out var sectors)) { @@ -113,6 +118,11 @@ namespace NewHorizons.Handlers StreamingManager.UnloadStreamingAssets(assetBundle); }; } + else + { + foreach (var assetBundle in assetBundles) + StreamingManager.LoadStreamingAssets(assetBundle); + } } public static bool IsBundleInUse(string assetBundle) @@ -133,7 +143,7 @@ namespace NewHorizons.Handlers } else { - return Locator.GetAstroObject(name)?.GetComponentInChildren(); + return Locator.GetAstroObject(name).GetComponentInChildren(); } } }