diff --git a/NewHorizons/Builder/Body/CloakBuilder.cs b/NewHorizons/Builder/Body/CloakBuilder.cs index 4debb50a..c75fa60c 100644 --- a/NewHorizons/Builder/Body/CloakBuilder.cs +++ b/NewHorizons/Builder/Body/CloakBuilder.cs @@ -1,4 +1,4 @@ -using NewHorizons.Components; +using NewHorizons.Components; using NewHorizons.Utility; using UnityEngine; namespace NewHorizons.Builder.Body @@ -32,6 +32,8 @@ namespace NewHorizons.Builder.Body newCloak.SetActive(true); cloakFieldController.enabled = true; + cloakSectorController.EnableCloak(); + // To cloak from the start Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(cloakSectorController.OnPlayerExit); } diff --git a/NewHorizons/Components/CloakSectorController.cs b/NewHorizons/Components/CloakSectorController.cs index 844a1a15..f027a7dc 100644 --- a/NewHorizons/Components/CloakSectorController.cs +++ b/NewHorizons/Components/CloakSectorController.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using UnityEngine; namespace NewHorizons.Components @@ -60,5 +60,21 @@ namespace NewHorizons.Components renderer.forceRenderingOff = true; } } + + public void EnableCloak() + { + SunLightController.RegisterSunOverrider(_cloak, 900); + _cloak._cloakSphereRenderer.SetActivation(true); + Shader.EnableKeyword("_CLOAKINGFIELDENABLED"); + _cloak._cloakVisualsEnabled = true; + } + + public void DisableCloak() + { + SunLightController.UnregisterSunOverrider(_cloak); + _cloak._cloakSphereRenderer.SetActivation(false); + Shader.DisableKeyword("_CLOAKINGFIELDENABLED"); + _cloak._cloakVisualsEnabled = false; + } } }