From c2e3bd65cff8c26e082b41b7e009901342f7ddce Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Fri, 25 Nov 2022 18:04:55 -0500 Subject: [PATCH] Add isRelativeToParent option --- NewHorizons/Builder/ShipLog/RevealBuilder.cs | 4 +++- NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs | 4 +++- NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs | 4 +++- NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs | 4 +++- NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs | 4 +++- NewHorizons/Builder/Volumes/VolumeBuilder.cs | 4 +++- NewHorizons/External/Modules/VolumesModule.cs | 5 +++++ 7 files changed, 23 insertions(+), 6 deletions(-) diff --git a/NewHorizons/Builder/ShipLog/RevealBuilder.cs b/NewHorizons/Builder/ShipLog/RevealBuilder.cs index 559684b7..a04afdb7 100644 --- a/NewHorizons/Builder/ShipLog/RevealBuilder.cs +++ b/NewHorizons/Builder/ShipLog/RevealBuilder.cs @@ -60,7 +60,9 @@ namespace NewHorizons.Builder.ShipLog } } - revealTriggerVolume.transform.position = planetGO.transform.TransformPoint(info.position ?? Vector3.zero); + var pos = (Vector3)(info.position ?? Vector3.zero); + if (info.isRelativeToParent) revealTriggerVolume.transform.localPosition = pos; + else revealTriggerVolume.transform.position = planetGO.transform.TransformPoint(pos); return revealTriggerVolume; } diff --git a/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs b/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs index 6f10baf4..8711ddf7 100644 --- a/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs @@ -39,7 +39,9 @@ namespace NewHorizons.Builder.Volumes } } - go.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); + var pos = (Vector3)(info.position ?? Vector3.zero); + if (info.isRelativeToParent) go.transform.localPosition = pos; + else go.transform.position = planetGO.transform.TransformPoint(pos); go.layer = LayerMask.NameToLayer("AdvancedEffectVolume"); var audioSource = go.AddComponent(); diff --git a/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs b/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs index 705570d5..60fbdcf4 100644 --- a/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/HazardVolumeBuilder.cs @@ -36,7 +36,9 @@ namespace NewHorizons.Builder.Volumes } } - go.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); + var pos = (Vector3)(info.position ?? Vector3.zero); + if (info.isRelativeToParent) go.transform.localPosition = pos; + else go.transform.position = planetGO.transform.TransformPoint(pos); go.layer = LayerMask.NameToLayer("BasicEffectVolume"); var shape = go.AddComponent(); diff --git a/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs b/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs index dab95143..0363e5b5 100644 --- a/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/NotificationVolumeBuilder.cs @@ -39,7 +39,9 @@ namespace NewHorizons.Builder.Volumes } } - go.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); + var pos = (Vector3)(info.position ?? Vector3.zero); + if (info.isRelativeToParent) go.transform.localPosition = pos; + else go.transform.position = planetGO.transform.TransformPoint(pos); go.layer = LayerMask.NameToLayer("BasicEffectVolume"); var shape = go.AddComponent(); diff --git a/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs b/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs index 451d1c4b..47ee6c82 100644 --- a/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs @@ -32,7 +32,9 @@ namespace NewHorizons.Builder.Volumes } } - go.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); + var pos = (Vector3)(info.position ?? Vector3.zero); + if (info.isRelativeToParent) go.transform.localPosition = pos; + else go.transform.position = planetGO.transform.TransformPoint(pos); go.layer = LayerMask.NameToLayer("BasicEffectVolume"); var collider = go.AddComponent(); diff --git a/NewHorizons/Builder/Volumes/VolumeBuilder.cs b/NewHorizons/Builder/Volumes/VolumeBuilder.cs index 966c3c25..8bdb1808 100644 --- a/NewHorizons/Builder/Volumes/VolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/VolumeBuilder.cs @@ -32,7 +32,9 @@ namespace NewHorizons.Builder.Volumes } } - go.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); + var pos = (Vector3)(info.position ?? Vector3.zero); + if (info.isRelativeToParent) go.transform.localPosition = pos; + else go.transform.position = planetGO.transform.TransformPoint(pos); go.layer = LayerMask.NameToLayer("BasicEffectVolume"); var shape = go.AddComponent(); diff --git a/NewHorizons/External/Modules/VolumesModule.cs b/NewHorizons/External/Modules/VolumesModule.cs index 118407ad..c665fae4 100644 --- a/NewHorizons/External/Modules/VolumesModule.cs +++ b/NewHorizons/External/Modules/VolumesModule.cs @@ -105,6 +105,11 @@ namespace NewHorizons.External.Modules /// public string parentPath; + /// + /// Whether the positional coordinates are relative to parent instead of the root planet object. + /// + public bool isRelativeToParent; + /// /// An optional rename of this volume. ///