diff --git a/NewHorizons/Builder/Body/CometTailBuilder.cs b/NewHorizons/Builder/Body/CometTailBuilder.cs index 1f3d80ab..99346771 100644 --- a/NewHorizons/Builder/Body/CometTailBuilder.cs +++ b/NewHorizons/Builder/Body/CometTailBuilder.cs @@ -14,16 +14,25 @@ namespace NewHorizons.Builder.Body internal static void InitPrefab() { - if (_tailPrefab == null) _tailPrefab = SearchUtilities.Find("Comet_Body/Sector_CO/Effects_CO/Effects_CO_TailMeshes").InstantiateInactive().Rename("Prefab_CO_Tail").DontDestroyOnLoad(); + if (_tailPrefab == null) + { + _tailPrefab = SearchUtilities.Find("Comet_Body/Sector_CO/Effects_CO/Effects_CO_TailMeshes").InstantiateInactive().Rename("Prefab_CO_Tail").DontDestroyOnLoad(); + } } public static void Make(GameObject planetGO, Sector sector, CometTailModule cometTailModule, PlanetConfig config) { - var cometTail = GameObject.Instantiate(_tailPrefab, sector?.transform ?? planetGO.transform); - cometTail.transform.position = planetGO.transform.position; - cometTail.name = "CometTail"; + var rootObj = new GameObject("CometRoot"); + rootObj.SetActive(false); + rootObj.transform.parent = sector?.transform ?? planetGO.transform; + rootObj.transform.localPosition = Vector3.zero; - var controller = cometTail.AddComponent(); + var cometTail = GameObject.Instantiate(_tailPrefab, rootObj.transform).Rename("CometTail"); + cometTail.transform.localPosition = Vector3.zero; + cometTail.transform.localRotation = Quaternion.Euler(90, 90, 0); + cometTail.SetActive(true); + + var controller = rootObj.AddComponent(); controller.size = (cometTailModule.innerRadius ?? config.Base.surfaceSize) / 110; @@ -36,7 +45,7 @@ namespace NewHorizons.Builder.Body controller.SetPrimaryBody(AstroObjectLocator.GetAstroObject(cometTailModule.primaryBody).transform); }); - cometTail.SetActive(true); + rootObj.SetActive(true); } } }