From 80f8086faaa0a7c3ffc6b4ad32a246d2f6e9fbac Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Tue, 23 Aug 2022 14:25:29 -0400 Subject: [PATCH] Turn off ring fluid volume when opacity is 0 --- NewHorizons/Builder/Body/RingBuilder.cs | 2 ++ NewHorizons/Components/RingOpacityController.cs | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/NewHorizons/Builder/Body/RingBuilder.cs b/NewHorizons/Builder/Body/RingBuilder.cs index 652ca524..831f7be5 100644 --- a/NewHorizons/Builder/Body/RingBuilder.cs +++ b/NewHorizons/Builder/Body/RingBuilder.cs @@ -60,6 +60,8 @@ namespace NewHorizons.Builder.Body sfv._fluidType = fluidType; sfv._density = 5f; + if (ringGO.TryGetComponent(out var ringOC)) ringOC.SetRingFluidVolume(sfv); + ringVolume.SetActive(true); diff --git a/NewHorizons/Components/RingOpacityController.cs b/NewHorizons/Components/RingOpacityController.cs index adc3924b..3823529c 100644 --- a/NewHorizons/Components/RingOpacityController.cs +++ b/NewHorizons/Components/RingOpacityController.cs @@ -11,6 +11,7 @@ namespace NewHorizons.Components public float CurrentOpacity { get; protected set; } private MeshRenderer _meshRenderer; + private RingFluidVolume _ringFluidVolume; protected void FixedUpdate() { @@ -23,6 +24,12 @@ namespace NewHorizons.Components CurrentOpacity = 1; } + if (_ringFluidVolume != null) + { + if (Mathf.Approximately(CurrentOpacity, 0) && _ringFluidVolume.IsVolumeActive()) _ringFluidVolume.SetVolumeActivation(false); + else if (!_ringFluidVolume.IsVolumeActive()) _ringFluidVolume.SetVolumeActivation(true); + } + if (_meshRenderer == null) return; _meshRenderer.material.SetFloat(Alpha, CurrentOpacity); @@ -38,5 +45,6 @@ namespace NewHorizons.Components } public void SetMeshRenderer(MeshRenderer meshRenderer) => _meshRenderer = meshRenderer; + public void SetRingFluidVolume(RingFluidVolume ringFluidVolume) => _ringFluidVolume = ringFluidVolume; } }