From 92634dade185cef967db3c624f68b8f406d0ac13 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Fri, 14 Jun 2024 21:48:30 -0400 Subject: [PATCH] Fix quantum planet NRE --- .../Components/Quantum/QuantumPlanet.cs | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/NewHorizons/Components/Quantum/QuantumPlanet.cs b/NewHorizons/Components/Quantum/QuantumPlanet.cs index 5e5a4ecf..f8b58dbe 100644 --- a/NewHorizons/Components/Quantum/QuantumPlanet.cs +++ b/NewHorizons/Components/Quantum/QuantumPlanet.cs @@ -22,6 +22,16 @@ namespace NewHorizons.Components.Quantum private OWRigidbody _rb; private OrbitLine _orbitLine; + public NHAstroObject astroObject + { + get + { + if (_astroObject == null) + _astroObject = GetComponent(); + return _astroObject; + } + } + public int CurrentIndex { get; private set; } public override void Awake() @@ -97,7 +107,7 @@ namespace NewHorizons.Components.Quantum primaryBody = AstroObjectLocator.GetAstroObject(newOrbit.primaryBody); var primaryGravity = new Gravity(primaryBody.GetGravityVolume()); - var secondaryGravity = new Gravity(_astroObject.GetGravityVolume()); + var secondaryGravity = new Gravity(astroObject.GetGravityVolume()); orbitalParams = newOrbit.GetOrbitalParameters(primaryGravity, secondaryGravity); var pos = primaryBody.transform.position + orbitalParams.InitialPosition; @@ -139,15 +149,15 @@ namespace NewHorizons.Components.Quantum private void SetNewOrbit(AstroObject primaryBody, OrbitalParameters orbitalParameters) { - _astroObject._primaryBody = primaryBody; - DetectorBuilder.SetDetector(primaryBody, _astroObject, _detector); + astroObject._primaryBody = primaryBody; + DetectorBuilder.SetDetector(primaryBody, astroObject, _detector); _detector._activeInheritedDetector = primaryBody.GetComponentInChildren(); _detector._activeVolumes = new List() { primaryBody.GetGravityVolume() }; if (_alignment != null) _alignment.SetTargetBody(primaryBody.GetComponent()); - _astroObject.SetOrbitalParametersFromTrueAnomaly(orbitalParameters.eccentricity, orbitalParameters.semiMajorAxis, orbitalParameters.inclination, orbitalParameters.argumentOfPeriapsis, orbitalParameters.longitudeOfAscendingNode, orbitalParameters.trueAnomaly); + astroObject.SetOrbitalParametersFromTrueAnomaly(orbitalParameters.eccentricity, orbitalParameters.semiMajorAxis, orbitalParameters.inclination, orbitalParameters.argumentOfPeriapsis, orbitalParameters.longitudeOfAscendingNode, orbitalParameters.trueAnomaly); - PlanetCreationHandler.UpdatePosition(gameObject, orbitalParameters, primaryBody, _astroObject); + PlanetCreationHandler.UpdatePosition(gameObject, orbitalParameters, primaryBody, astroObject); if (!Physics.autoSyncTransforms) {