mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
remove NHFluidVolume since we now patch a proper depth function into RadialFluidVolume
This commit is contained in:
parent
fb8b09fb3e
commit
e748c49a3f
@ -3,7 +3,6 @@ using NewHorizons.Utility;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using NewHorizons.External.Modules.VariableSize;
|
using NewHorizons.External.Modules.VariableSize;
|
||||||
using Tessellation;
|
using Tessellation;
|
||||||
using NewHorizons.Components.Volumes;
|
|
||||||
|
|
||||||
namespace NewHorizons.Builder.Body
|
namespace NewHorizons.Builder.Body
|
||||||
{
|
{
|
||||||
@ -80,7 +79,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
var buoyancyTriggerVolume = buoyancyObject.AddComponent<OWTriggerVolume>();
|
var buoyancyTriggerVolume = buoyancyObject.AddComponent<OWTriggerVolume>();
|
||||||
buoyancyTriggerVolume._owCollider = owCollider;
|
buoyancyTriggerVolume._owCollider = owCollider;
|
||||||
|
|
||||||
var fluidVolume = buoyancyObject.AddComponent<NHFluidVolume>();
|
var fluidVolume = buoyancyObject.AddComponent<RadialFluidVolume>();
|
||||||
fluidVolume._fluidType = FluidVolume.Type.WATER;
|
fluidVolume._fluidType = FluidVolume.Type.WATER;
|
||||||
fluidVolume._attachedBody = rb;
|
fluidVolume._attachedBody = rb;
|
||||||
fluidVolume._triggerVolume = buoyancyTriggerVolume;
|
fluidVolume._triggerVolume = buoyancyTriggerVolume;
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using NewHorizons.Components.Volumes;
|
using NewHorizons.External.Modules;
|
||||||
using NewHorizons.External.Modules;
|
|
||||||
using NewHorizons.Handlers;
|
using NewHorizons.Handlers;
|
||||||
using NewHorizons.Utility;
|
using NewHorizons.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -44,7 +43,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
|
|
||||||
// Detectors
|
// Detectors
|
||||||
var fluidDetector = raftObject.transform.Find("Detector_Raft").GetComponent<RaftFluidDetector>();
|
var fluidDetector = raftObject.transform.Find("Detector_Raft").GetComponent<RaftFluidDetector>();
|
||||||
var waterVolume = (FluidVolume)planetGO.GetComponentInChildren<NHFluidVolume>() ?? planetGO.GetComponentInChildren<SphereOceanFluidVolume>();
|
var waterVolume = planetGO.GetComponentInChildren<RadialFluidVolume>();
|
||||||
fluidDetector._alignmentFluid = waterVolume;
|
fluidDetector._alignmentFluid = waterVolume;
|
||||||
fluidDetector._buoyancy.checkAgainstWaves = true;
|
fluidDetector._buoyancy.checkAgainstWaves = true;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +1,4 @@
|
|||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using NewHorizons.Components.Volumes;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
namespace NewHorizons.Patches
|
namespace NewHorizons.Patches
|
||||||
{
|
{
|
||||||
@ -84,7 +83,7 @@ namespace NewHorizons.Patches
|
|||||||
[HarmonyPatch(typeof(AlignToSurfaceFluidDetector), nameof(AlignToSurfaceFluidDetector.ManagedFixedUpdate))]
|
[HarmonyPatch(typeof(AlignToSurfaceFluidDetector), nameof(AlignToSurfaceFluidDetector.ManagedFixedUpdate))]
|
||||||
public static bool AlignToSurfaceFluidDetector_ManagedFixedUpdate(AlignToSurfaceFluidDetector __instance)
|
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
|
// Mostly copy pasting from the AlignWithDirection class
|
||||||
AsymmetricFluidDetector_ManagedFixedUpdate(__instance);
|
AsymmetricFluidDetector_ManagedFixedUpdate(__instance);
|
||||||
@ -109,14 +108,11 @@ namespace NewHorizons.Patches
|
|||||||
[HarmonyPatch(typeof(FluidVolume), nameof(FluidVolume.GetDepthAtPosition))]
|
[HarmonyPatch(typeof(FluidVolume), nameof(FluidVolume.GetDepthAtPosition))]
|
||||||
public static bool FluidVolume_GetDepthAtPosition(FluidVolume __instance, ref float __result, Vector3 worldPosition)
|
public static bool FluidVolume_GetDepthAtPosition(FluidVolume __instance, ref float __result, Vector3 worldPosition)
|
||||||
{
|
{
|
||||||
if (__instance is SphereOceanFluidVolume sphereOceanFluidVolume)
|
if (__instance is not RadialFluidVolume radialFluidVolume) return true;
|
||||||
{
|
|
||||||
Vector3 vector = sphereOceanFluidVolume.transform.InverseTransformPoint(worldPosition);
|
Vector3 vector = radialFluidVolume.transform.InverseTransformPoint(worldPosition);
|
||||||
__result = Mathf.Sqrt(vector.x * vector.x + vector.z * vector.z + vector.y * vector.y) - sphereOceanFluidVolume._radius;
|
__result = Mathf.Sqrt(vector.x * vector.x + vector.z * vector.z + vector.y * vector.y) - radialFluidVolume._radius;
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
else
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user