mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix an NPE error
This commit is contained in:
parent
1fb0c009e5
commit
ce0db4c79e
@ -15,7 +15,7 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
public static class HeavenlyBodyBuilder
|
public static class HeavenlyBodyBuilder
|
||||||
{
|
{
|
||||||
private static readonly Dictionary<string, HeavenlyBody> bodyName = new Dictionary<string, HeavenlyBody>();
|
private static readonly Dictionary<string, HeavenlyBody> _bodyMap = new Dictionary<string, HeavenlyBody>();
|
||||||
|
|
||||||
public static void Make(GameObject body, IPlanetConfig config, float SOI, GravityVolume bodyGravity, InitialMotion initialMotion)
|
public static void Make(GameObject body, IPlanetConfig config, float SOI, GravityVolume bodyGravity, InitialMotion initialMotion)
|
||||||
{
|
{
|
||||||
@ -40,14 +40,15 @@ namespace NewHorizons.Builder.General
|
|||||||
private static HeavenlyBody AddHeavenlyBody(string name)
|
private static HeavenlyBody AddHeavenlyBody(string name)
|
||||||
{
|
{
|
||||||
var hb = new HeavenlyBody(name);
|
var hb = new HeavenlyBody(name);
|
||||||
bodyName.Add(name, hb);
|
_bodyMap.Add(name, hb);
|
||||||
|
|
||||||
var astroLookup = Position.AstroLookup;
|
var astroLookup = Position.AstroLookup;
|
||||||
astroLookup.Add(hb, () => AstroObjectLocator.GetAstroObject(name));
|
|
||||||
Position.AstroLookup = astroLookup;
|
|
||||||
|
|
||||||
var bodyLookup = Position.BodyLookup;
|
var bodyLookup = Position.BodyLookup;
|
||||||
bodyLookup.Add(hb, () => AstroObjectLocator.GetAstroObject(name)?.GetAttachedOWRigidbody());
|
|
||||||
|
astroLookup.Add(hb, () => GetAstroObject(name));
|
||||||
|
bodyLookup.Add(hb, () => GetOWRigidbody(name));
|
||||||
|
|
||||||
|
Position.AstroLookup = astroLookup;
|
||||||
Position.BodyLookup = bodyLookup;
|
Position.BodyLookup = bodyLookup;
|
||||||
|
|
||||||
return hb;
|
return hb;
|
||||||
@ -55,17 +56,40 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
private static HeavenlyBody GetBody(string name)
|
private static HeavenlyBody GetBody(string name)
|
||||||
{
|
{
|
||||||
if (bodyName.ContainsKey(name))
|
if (_bodyMap.ContainsKey(name))
|
||||||
{
|
{
|
||||||
return bodyName[name];
|
return _bodyMap[name];
|
||||||
}
|
}
|
||||||
|
|
||||||
var hb = Position.find(AstroObjectLocator.GetAstroObject(name));
|
var hb = Position.find(AstroObjectLocator.GetAstroObject(name));
|
||||||
if (hb != null)
|
if (hb != null)
|
||||||
{
|
{
|
||||||
bodyName.Add(name, hb);
|
_bodyMap.Add(name, hb);
|
||||||
}
|
}
|
||||||
return hb;
|
return hb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void OnDestroy()
|
||||||
|
{
|
||||||
|
Planet.defaultMapping = Planet.standardMapping;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AstroObject GetAstroObject(string name)
|
||||||
|
{
|
||||||
|
var astroBody = AstroObjectLocator.GetAstroObject(name);
|
||||||
|
if (astroBody == null
|
||||||
|
|| astroBody.gameObject == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return astroBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static OWRigidbody GetOWRigidbody(string name)
|
||||||
|
{
|
||||||
|
var astroBody = GetAstroObject(name);
|
||||||
|
return astroBody?.GetOWRigidbody();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,8 +69,9 @@ namespace NewHorizons
|
|||||||
|
|
||||||
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||||
{
|
{
|
||||||
Logger.Log($"Scene Loaded: {scene} {mode}");
|
Logger.Log($"Scene Loaded: {scene.name} {mode}");
|
||||||
if (scene.name != "SolarSystem") return;
|
HeavenlyBodyBuilder.OnDestroy();
|
||||||
|
if (scene.name != "SolarSystem") { return; }
|
||||||
|
|
||||||
Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => Locator.GetPlayerBody().gameObject.AddComponent<DebugRaycaster>());
|
Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => Locator.GetPlayerBody().gameObject.AddComponent<DebugRaycaster>());
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user