do proper null checking on sectors

This commit is contained in:
JohnCorby 2022-12-28 12:28:29 -08:00
parent ce4072fed0
commit 177eea9e36

View File

@ -24,16 +24,23 @@ namespace NewHorizons.Handlers
{ {
var group = GetStreamingGroup(name); var group = GetStreamingGroup(name);
sector.OnOccupantEnterSector += _ => if (sector)
{ {
if (sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe)) sector.OnOccupantEnterSector += _ =>
group.RequestGeneralAssets(); {
}; if (sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe))
sector.OnOccupantExitSector += _ => group.RequestGeneralAssets();
};
sector.OnOccupantExitSector += _ =>
{
if (!sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe))
group.ReleaseGeneralAssets();
};
}
else
{ {
if (!sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe)) group.RequestGeneralAssets();
group.ReleaseGeneralAssets(); }
};
} }
/// <summary> /// <summary>
@ -87,8 +94,6 @@ namespace NewHorizons.Handlers
foreach (var assetBundle in assetBundles) foreach (var assetBundle in assetBundles)
{ {
StreamingManager.LoadStreamingAssets(assetBundle);
// Track the sector even if its null. null means stay loaded forever // Track the sector even if its null. null means stay loaded forever
if (!_sectorCache.TryGetValue(assetBundle, out var sectors)) if (!_sectorCache.TryGetValue(assetBundle, out var sectors))
{ {
@ -113,6 +118,11 @@ namespace NewHorizons.Handlers
StreamingManager.UnloadStreamingAssets(assetBundle); StreamingManager.UnloadStreamingAssets(assetBundle);
}; };
} }
else
{
foreach (var assetBundle in assetBundles)
StreamingManager.LoadStreamingAssets(assetBundle);
}
} }
public static bool IsBundleInUse(string assetBundle) public static bool IsBundleInUse(string assetBundle)
@ -133,7 +143,7 @@ namespace NewHorizons.Handlers
} }
else else
{ {
return Locator.GetAstroObject(name)?.GetComponentInChildren<StreamingGroup>(); return Locator.GetAstroObject(name).GetComponentInChildren<StreamingGroup>();
} }
} }
} }