From 675f033a1115419512adb0fd749f186d9580295c Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 20 Mar 2022 17:56:40 -0400 Subject: [PATCH] Put cloakfieldcontroller --- NewHorizons/Builder/Body/CloakBuilder.cs | 31 +++++++++++++++++++ NewHorizons/External/BaseModule.cs | 1 + NewHorizons/Handlers/PlanetCreationHandler.cs | 4 +++ 3 files changed, 36 insertions(+) create mode 100644 NewHorizons/Builder/Body/CloakBuilder.cs diff --git a/NewHorizons/Builder/Body/CloakBuilder.cs b/NewHorizons/Builder/Body/CloakBuilder.cs new file mode 100644 index 00000000..ec6d96a5 --- /dev/null +++ b/NewHorizons/Builder/Body/CloakBuilder.cs @@ -0,0 +1,31 @@ +using NewHorizons.Utility; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace NewHorizons.Builder.Body +{ + static class CloakBuilder + { + public static void Make(GameObject body, OWRigidbody rigidbody, float radius) + { + var cloak = SearchUtilities.Find("RingWorld_Body/CloakingField_IP"); + + var newCloak = GameObject.Instantiate(cloak, body.transform); + newCloak.transform.localPosition = Vector3.zero; + + // Get all the mesh renders + var renderers = new List(); + + foreach(var renderer in body.GetComponentsInChildren()) + { + renderers.SafeAdd(renderer); + renderer.enabled = false; + } + + } + } +} diff --git a/NewHorizons/External/BaseModule.cs b/NewHorizons/External/BaseModule.cs index 1dd32d55..3557db1b 100644 --- a/NewHorizons/External/BaseModule.cs +++ b/NewHorizons/External/BaseModule.cs @@ -21,6 +21,7 @@ namespace NewHorizons.External public bool HasReferenceFrame { get; set; } = true; public bool CenterOfSolarSystem { get; set; } = false; public bool IsSatellite { get; set; } + public float CloakRadius { get; set; } = 0f; // Old, see SingularityModule instead public float BlackHoleSize { get; set; } diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index 738db956..371654fb 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -351,6 +351,10 @@ namespace NewHorizons.Handlers if (body.Config.Funnel != null) FunnelBuilder.Make(go, go.GetComponentInChildren(), rb, body.Config.Funnel); + // Has to go last probably + if (body.Config.Base.CloakRadius != 0f) + CloakBuilder.Make(go, rb, body.Config.Base.CloakRadius); + return go; }