From cbc82755873d71a72fe283e1cd161a93ad8d986d Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Mon, 8 Aug 2022 23:28:22 -0400 Subject: [PATCH] Turn off reference frame and map marker for dead stars --- NewHorizons/Builder/Body/StarBuilder.cs | 1 + .../StarEvolutionController.cs | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/NewHorizons/Builder/Body/StarBuilder.cs b/NewHorizons/Builder/Body/StarBuilder.cs index e5b6e664..829be8e0 100644 --- a/NewHorizons/Builder/Body/StarBuilder.cs +++ b/NewHorizons/Builder/Body/StarBuilder.cs @@ -137,6 +137,7 @@ namespace NewHorizons.Builder.Body if (starModule.curve != null) controller.SetScaleCurve(starModule.curve); controller.size = starModule.size; controller.atmosphere = sunAtmosphere; + controller.controller = starController; controller.supernova = supernova; controller.StartColour = starModule.tint; controller.EndColour = starModule.endTint; diff --git a/NewHorizons/Components/SizeControllers/StarEvolutionController.cs b/NewHorizons/Components/SizeControllers/StarEvolutionController.cs index 19405664..322dd211 100644 --- a/NewHorizons/Components/SizeControllers/StarEvolutionController.cs +++ b/NewHorizons/Components/SizeControllers/StarEvolutionController.cs @@ -14,6 +14,7 @@ namespace NewHorizons.Components.SizeControllers public class StarEvolutionController : SizeController { public GameObject atmosphere; + public StarController controller; public SupernovaEffectController supernova; public bool WillExplode { get; set; } public MColor StartColour { get; set; } @@ -29,6 +30,8 @@ namespace NewHorizons.Components.SizeControllers private HeatHazardVolume _heatVolume; private DestructionVolume _destructionVolume; private SolarFlareEmitter _flareEmitter; + private MapMarker _mapMarker; + private OWRigidbody _rigidbody; private bool _isCollapsing; private float _collapseStartSize; @@ -64,6 +67,9 @@ namespace NewHorizons.Components.SizeControllers private void Start() { + _rigidbody = this.GetAttachedOWRigidbody(); + if (_rigidbody != null) _mapMarker = _rigidbody.GetComponent(); + var sun = GameObject.FindObjectOfType(); _collapseStartSurfaceMaterial = new Material(sun._collapseStartSurfaceMaterial); _collapseEndSurfaceMaterial = new Material(sun._collapseEndSurfaceMaterial); @@ -207,6 +213,22 @@ namespace NewHorizons.Components.SizeControllers if (Time.time > _supernovaStartTime + 45f) { + if (_rigidbody != null) + { + ReferenceFrameTracker referenceFrameTracker = Locator.GetPlayerBody().GetComponent(); + if (referenceFrameTracker.GetReferenceFrame() != null && referenceFrameTracker.GetReferenceFrame().GetOWRigidBody() == _rigidbody) referenceFrameTracker.UntargetReferenceFrame(); + _rigidbody._isTargetable = false; + if (_rigidbody._attachedRFVolume != null) + { + _rigidbody._attachedRFVolume._minColliderRadius = 0; + _rigidbody._attachedRFVolume._maxColliderRadius = 0; + } + } + + if (_mapMarker != null) _mapMarker.DisableMarker(); + + if (controller != null) StarLightController.RemoveStar(controller); + // Just turn off the star entirely base.gameObject.SetActive(false); }