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);
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();
}
}
/// <summary>
@ -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<StreamingGroup>();
return Locator.GetAstroObject(name).GetComponentInChildren<StreamingGroup>();
}
}
}