diff --git a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs index 45724ab4..5633ff06 100644 --- a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs +++ b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs @@ -13,7 +13,6 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; using static NewHorizons.External.Modules.BrambleModule; -using static NewHorizons.External.Modules.SignalModule; namespace NewHorizons.Builder.Props { diff --git a/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs b/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs index 4b312a60..041bf942 100644 --- a/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/VanishVolumeBuilder.cs @@ -1,4 +1,5 @@ using NewHorizons.External.Modules.Volumes.VolumeInfos; +using NewHorizons.Utility.OWML; using UnityEngine; namespace NewHorizons.Builder.Volumes @@ -7,6 +8,17 @@ namespace NewHorizons.Builder.Volumes { public static TVolume Make(GameObject planetGO, Sector sector, VanishVolumeInfo info) where TVolume : VanishVolume { + if (info.shape != null && (info.shape?.type != External.Modules.Props.ShapeType.Sphere || info.shape?.useShape == false)) + { + NHLogger.LogError($"Destruction/VanishVolumes only support sphere colliders. Affects planet [{planetGO.name}]"); + } + + // VanishVolume is only compatible with sphere colliders + // If info.shape was null, it will still default to using info.radius, just make sure it does so with a collider + info.shape ??= new(); + info.shape.useShape = false; + info.shape.type = External.Modules.Props.ShapeType.Sphere; + var volume = VolumeBuilder.Make(planetGO, sector, info); var collider = volume.gameObject.GetComponent(); diff --git a/NewHorizons/Builder/Volumes/VolumeBuilder.cs b/NewHorizons/Builder/Volumes/VolumeBuilder.cs index b9e61394..d9d28607 100644 --- a/NewHorizons/Builder/Volumes/VolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/VolumeBuilder.cs @@ -45,7 +45,7 @@ namespace NewHorizons.Builder.Volumes return volume; } - public static TVolume Make(GameObject planetGO, Sector sector, VolumeInfo info) where TVolume : MonoBehaviour //Could be BaseVolume but I need to create vanilla volumes too. + public static TVolume Make(GameObject planetGO, Sector sector, VolumeInfo info) where TVolume : MonoBehaviour // Could be BaseVolume but I need to create vanilla volumes too. { var go = GeneralPropBuilder.MakeNew(typeof(TVolume).Name, planetGO, sector, info); return MakeExisting(go, planetGO, sector, info); diff --git a/NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs index bb66b0a8..9287a87f 100644 --- a/NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs +++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/VanishVolumeInfo.cs @@ -4,6 +4,9 @@ using System.ComponentModel; namespace NewHorizons.External.Modules.Volumes.VolumeInfos { + /// + /// Note: Only sphere colliders work on vanish volumes! + /// [JsonObject] public class VanishVolumeInfo : VolumeInfo {