diff --git a/NewHorizons/Builder/Body/CometTailBuilder.cs b/NewHorizons/Builder/Body/CometTailBuilder.cs index 9633b316..781c44bc 100644 --- a/NewHorizons/Builder/Body/CometTailBuilder.cs +++ b/NewHorizons/Builder/Body/CometTailBuilder.cs @@ -60,14 +60,22 @@ namespace NewHorizons.Builder.Body } } - public static void Make(GameObject planetGO, Sector sector, CometTailModule cometTailModule, PlanetConfig config) + public static void Make(GameObject planetGO, Sector sector, CometTailModule cometTailModule, PlanetConfig config, AstroObject ao) { - if (config.Orbit.primaryBody == null) + var primaryBody = ao.GetPrimaryBody(); + + if (!string.IsNullOrEmpty(config.Orbit.primaryBody)) primaryBody = AstroObjectLocator.GetAstroObject(config.Orbit.primaryBody); + + if (primaryBody == null) { NHLogger.LogError($"Comet {planetGO.name} does not orbit anything. That makes no sense"); return; } + if (string.IsNullOrEmpty(cometTailModule.primaryBody)) + cometTailModule.primaryBody = !string.IsNullOrEmpty(config.Orbit.primaryBody) ? config.Orbit.primaryBody + : (primaryBody._name == AstroObject.Name.CustomString ? primaryBody.GetCustomName() : primaryBody._name.ToString()); + var rootObj = new GameObject("CometRoot"); rootObj.SetActive(false); rootObj.transform.parent = sector?.transform ?? planetGO.transform; @@ -79,13 +87,11 @@ namespace NewHorizons.Builder.Body if (cometTailModule.rotationOverride != null) controller.SetRotationOverride(cometTailModule.rotationOverride); - if (string.IsNullOrEmpty(cometTailModule.primaryBody)) cometTailModule.primaryBody = config.Orbit.primaryBody; - Delay.FireOnNextUpdate(() => { controller.SetPrimaryBody( - AstroObjectLocator.GetAstroObject(cometTailModule.primaryBody).transform, - AstroObjectLocator.GetAstroObject(config.Orbit.primaryBody).GetAttachedOWRigidbody() + AstroObjectLocator.GetAstroObject(cometTailModule.primaryBody).transform, + primaryBody.GetAttachedOWRigidbody() ); }); diff --git a/NewHorizons/Builder/Body/ProxyBuilder.cs b/NewHorizons/Builder/Body/ProxyBuilder.cs index 0b4cafc3..943726eb 100644 --- a/NewHorizons/Builder/Body/ProxyBuilder.cs +++ b/NewHorizons/Builder/Body/ProxyBuilder.cs @@ -203,7 +203,7 @@ namespace NewHorizons.Builder.Body if (body.Config.CometTail != null) { - CometTailBuilder.Make(proxy, null, body.Config.CometTail, body.Config); + CometTailBuilder.Make(proxy, null, body.Config.CometTail, body.Config, planetGO.GetComponent()); } if (body.Config.Props?.proxyDetails != null) diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index 858131e9..8b0c01f2 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -657,7 +657,7 @@ namespace NewHorizons.Handlers if (body.Config.CometTail != null) { - CometTailBuilder.Make(go, sector, body.Config.CometTail, body.Config); + CometTailBuilder.Make(go, sector, body.Config.CometTail, body.Config, go.GetComponent()); } if (body.Config.Lava != null)