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; } }