From e748c49a3f2b6babd0ba4511e6f441f2ebd0cb7b Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Sun, 9 Oct 2022 15:14:13 -0700 Subject: [PATCH] remove NHFluidVolume since we now patch a proper depth function into RadialFluidVolume --- NewHorizons/Builder/Body/WaterBuilder.cs | 3 +-- NewHorizons/Builder/Props/RaftBuilder.cs | 5 ++--- NewHorizons/Components/Volumes/NHFluidVolume.cs | 13 ------------- NewHorizons/Patches/RaftPatches.cs | 16 ++++++---------- 4 files changed, 9 insertions(+), 28 deletions(-) delete mode 100644 NewHorizons/Components/Volumes/NHFluidVolume.cs diff --git a/NewHorizons/Builder/Body/WaterBuilder.cs b/NewHorizons/Builder/Body/WaterBuilder.cs index a05dd63e..6b75af04 100644 --- a/NewHorizons/Builder/Body/WaterBuilder.cs +++ b/NewHorizons/Builder/Body/WaterBuilder.cs @@ -3,7 +3,6 @@ using NewHorizons.Utility; using UnityEngine; using NewHorizons.External.Modules.VariableSize; using Tessellation; -using NewHorizons.Components.Volumes; namespace NewHorizons.Builder.Body { @@ -80,7 +79,7 @@ namespace NewHorizons.Builder.Body var buoyancyTriggerVolume = buoyancyObject.AddComponent(); buoyancyTriggerVolume._owCollider = owCollider; - var fluidVolume = buoyancyObject.AddComponent(); + var fluidVolume = buoyancyObject.AddComponent(); fluidVolume._fluidType = FluidVolume.Type.WATER; fluidVolume._attachedBody = rb; fluidVolume._triggerVolume = buoyancyTriggerVolume; diff --git a/NewHorizons/Builder/Props/RaftBuilder.cs b/NewHorizons/Builder/Props/RaftBuilder.cs index 05fe3d2b..65e54f46 100644 --- a/NewHorizons/Builder/Props/RaftBuilder.cs +++ b/NewHorizons/Builder/Props/RaftBuilder.cs @@ -1,5 +1,4 @@ -using NewHorizons.Components.Volumes; -using NewHorizons.External.Modules; +using NewHorizons.External.Modules; using NewHorizons.Handlers; using NewHorizons.Utility; using UnityEngine; @@ -44,7 +43,7 @@ namespace NewHorizons.Builder.Props // Detectors var fluidDetector = raftObject.transform.Find("Detector_Raft").GetComponent(); - var waterVolume = (FluidVolume)planetGO.GetComponentInChildren() ?? planetGO.GetComponentInChildren(); + var waterVolume = planetGO.GetComponentInChildren(); fluidDetector._alignmentFluid = waterVolume; fluidDetector._buoyancy.checkAgainstWaves = true; diff --git a/NewHorizons/Components/Volumes/NHFluidVolume.cs b/NewHorizons/Components/Volumes/NHFluidVolume.cs deleted file mode 100644 index 3b5a4a00..00000000 --- a/NewHorizons/Components/Volumes/NHFluidVolume.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UnityEngine; -namespace NewHorizons.Components.Volumes -{ - public class NHFluidVolume : RadialFluidVolume - { - public override float GetDepthAtPosition(Vector3 worldPosition) - { - Vector3 vector = transform.InverseTransformPoint(worldPosition); - float dist = Mathf.Sqrt(vector.x * vector.x + vector.z * vector.z + vector.y * vector.y); - return dist - _radius; - } - } -} diff --git a/NewHorizons/Patches/RaftPatches.cs b/NewHorizons/Patches/RaftPatches.cs index de8dd91d..196885c0 100644 --- a/NewHorizons/Patches/RaftPatches.cs +++ b/NewHorizons/Patches/RaftPatches.cs @@ -1,5 +1,4 @@ using HarmonyLib; -using NewHorizons.Components.Volumes; using UnityEngine; namespace NewHorizons.Patches { @@ -84,7 +83,7 @@ namespace NewHorizons.Patches [HarmonyPatch(typeof(AlignToSurfaceFluidDetector), nameof(AlignToSurfaceFluidDetector.ManagedFixedUpdate))] public static bool AlignToSurfaceFluidDetector_ManagedFixedUpdate(AlignToSurfaceFluidDetector __instance) { - if (__instance._alignmentFluid is not (NHFluidVolume or SphereOceanFluidVolume)) return true; + if (__instance._alignmentFluid is not RadialFluidVolume) return true; // Mostly copy pasting from the AlignWithDirection class AsymmetricFluidDetector_ManagedFixedUpdate(__instance); @@ -109,14 +108,11 @@ namespace NewHorizons.Patches [HarmonyPatch(typeof(FluidVolume), nameof(FluidVolume.GetDepthAtPosition))] public static bool FluidVolume_GetDepthAtPosition(FluidVolume __instance, ref float __result, Vector3 worldPosition) { - if (__instance is SphereOceanFluidVolume sphereOceanFluidVolume) - { - Vector3 vector = sphereOceanFluidVolume.transform.InverseTransformPoint(worldPosition); - __result = Mathf.Sqrt(vector.x * vector.x + vector.z * vector.z + vector.y * vector.y) - sphereOceanFluidVolume._radius; - return false; - } - else - return true; + if (__instance is not RadialFluidVolume radialFluidVolume) return true; + + Vector3 vector = radialFluidVolume.transform.InverseTransformPoint(worldPosition); + __result = Mathf.Sqrt(vector.x * vector.x + vector.z * vector.z + vector.y * vector.y) - radialFluidVolume._radius; + return false; } } }