diff --git a/NewHorizons/Builder/Props/SignalBuilder.cs b/NewHorizons/Builder/Props/SignalBuilder.cs index fd47e066..9cf4c0b5 100644 --- a/NewHorizons/Builder/Props/SignalBuilder.cs +++ b/NewHorizons/Builder/Props/SignalBuilder.cs @@ -136,6 +136,12 @@ namespace NewHorizons.Builder.Props var signalGO = new GameObject($"Signal_{info.name}"); signalGO.SetActive(false); signalGO.transform.parent = sector?.transform ?? planetGO.transform; + + if (!string.IsNullOrEmpty(info.parentPath)) + { + signalGO.transform.parent = planetGO.transform.Find(info.parentPath); + } + signalGO.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); signalGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume"); diff --git a/NewHorizons/External/Modules/SignalModule.cs b/NewHorizons/External/Modules/SignalModule.cs index ec8f93e9..3397df9a 100644 --- a/NewHorizons/External/Modules/SignalModule.cs +++ b/NewHorizons/External/Modules/SignalModule.cs @@ -75,6 +75,11 @@ namespace NewHorizons.External.Modules /// Radius of the sphere giving off the signal. /// [DefaultValue(1f)] public float sourceRadius = 1f; + + /// + /// The relative path from the planet to the parent of this signal. Optional (will default to the root sector). + /// + public string parentPath; } } } \ No newline at end of file