diff --git a/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs b/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs index cb68b791..5b634669 100644 --- a/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs +++ b/NewHorizons/Builder/General/HeavenlyBodyBuilder.cs @@ -11,6 +11,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; +using Logger = NewHorizons.Utility.Logger; namespace NewHorizons.Builder.General { @@ -39,21 +40,26 @@ namespace NewHorizons.Builder.General { hb = AddHeavenlyBody(config.Name); } - var planetoid = new Planet.Plantoid(size, gravity, body.transform.rotation, initialMotion._initAngularSpeed, parent, orbit); - var mapping = Planet.defaultMapping; - mapping[hb] = planetoid; - Planet.defaultMapping = mapping; + if(!config.Orbit.IsStatic) + { + var planetoid = new Planet.Plantoid(size, gravity, body.transform.rotation, initialMotion._initAngularSpeed, parent, orbit); + + var mapping = Planet.defaultMapping; + mapping[hb] = planetoid; + Planet.defaultMapping = mapping; + } // Fix for binary focal points var focalPoint = Position.AstroLookup[parent].Invoke()?.gameObject.GetComponent(); - if (focalPoint != null) + if (focalPoint != null && Planet.defaultMapping.ContainsKey(parent)) { var primary = Position.getBody(GetBody(focalPoint.PrimaryName)); var secondary = Position.getBody(GetBody(focalPoint.SecondaryName)); if(primary != null && secondary != null) { + Logger.Log($"Fixing BinaryFocalPoint HeavenlyBody gravity value for {parent.name}"); var exponent = ((primary?.GetAttachedGravityVolume()?.GetValue("_falloffExponent") ?? 2f) + (secondary?.GetAttachedGravityVolume()?.GetValue("_falloffExponent") ?? 2f)) / 2f; var mass = ((primary?.GetAttachedGravityVolume()?.GetValue("_gravitationalMass") ?? ((primary?.GetMass() ?? 0f) * 1000f)) + (secondary?.GetAttachedGravityVolume()?.GetValue("_gravitationalMass") ?? ((secondary?.GetMass() ?? 0f) * 1000f))) / 4f;