Keep Reference Frame for Cloak

This commit is contained in:
Noah Pilarski 2022-05-27 06:00:01 -04:00
parent bb22b03c18
commit 3ed6834f61
3 changed files with 7 additions and 2 deletions

View File

@ -5,7 +5,7 @@ namespace NewHorizons.Builder.Body
{
public static class CloakBuilder
{
public static void Make(GameObject planetGO, Sector sector, OWRigidbody OWRB, float radius)
public static void Make(GameObject planetGO, Sector sector, OWRigidbody OWRB, float radius, bool keepReferenceFrame)
{
var cloak = SearchUtilities.Find("RingWorld_Body/CloakingField_IP");
@ -36,6 +36,7 @@ namespace NewHorizons.Builder.Body
// To cloak from the start
Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(cloakSectorController.OnPlayerExit);
Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(keepReferenceFrame ? cloakSectorController.EnableReferenceFrameVolume : cloakSectorController.DisableReferenceFrameVolume);
}
}
}

View File

@ -76,5 +76,9 @@ namespace NewHorizons.Components
Shader.DisableKeyword("_CLOAKINGFIELDENABLED");
_cloak._cloakVisualsEnabled = false;
}
public void SetReferenceFrameVolumeActive(bool active) => _cloak._referenceFrameVolume.gameObject.SetActive(active);
public void EnableReferenceFrameVolume() => SetReferenceFrameVolumeActive(true);
public void DisableReferenceFrameVolume() => SetReferenceFrameVolumeActive(false);
}
}

View File

@ -482,7 +482,7 @@ namespace NewHorizons.Handlers
// Has to go last probably
if (body.Config.Base.cloakRadius != 0f)
{
CloakBuilder.Make(go, sector, rb, body.Config.Base.cloakRadius);
CloakBuilder.Make(go, sector, rb, body.Config.Base.cloakRadius, body.Config.Base.hasReferenceFrame);
}
return go;