From 7a400e2046fb7b05e8db1ae2e9cf85cd586e4f54 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 16 Jul 2023 11:48:37 -0400 Subject: [PATCH 1/5] throw error better when planet null --- NewHorizons/Handlers/PlanetCreationHandler.cs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index 8a9129cf..98d55efa 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -245,20 +245,10 @@ namespace NewHorizons.Handlers try { NHLogger.Log($"Creating [{body.Config.name}]"); - var planetObject = GenerateBody(body, defaultPrimaryToSun); - try - { - planetObject?.SetActive(true); - } - catch (Exception e) - { - NHLogger.LogError($"Error when activating new planet [{body.Config.name}] - {e}"); - } - if (planetObject == null) - { - body.UnloadCache(); - return false; - } + var planetObject = GenerateBody(body, defaultPrimaryToSun) + ?? throw new NullReferenceException("Something went wrong when generating the body but no errors were logged."); + + planetObject.SetActive(true); var ao = planetObject.GetComponent(); From f8fa30eb664482ec18fe1963d3d369ffc720c4b0 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 16 Jul 2023 12:59:58 -0400 Subject: [PATCH 2/5] Improve an error message --- NewHorizons/Builder/Orbital/InitialMotionBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NewHorizons/Builder/Orbital/InitialMotionBuilder.cs b/NewHorizons/Builder/Orbital/InitialMotionBuilder.cs index 71fae84a..c6405bd9 100644 --- a/NewHorizons/Builder/Orbital/InitialMotionBuilder.cs +++ b/NewHorizons/Builder/Orbital/InitialMotionBuilder.cs @@ -80,7 +80,7 @@ namespace NewHorizons.Builder.Orbital } else { - NHLogger.LogError($"No primary gravity or focal point for {primaryBody}"); + NHLogger.LogError($"Trying to put {secondaryBody.name} around {primaryBody.name} but found no primary gravity or focal point."); } } From 3887dde13e8277cf2e820aa25f457312ea4b6170 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 16 Jul 2023 13:00:14 -0400 Subject: [PATCH 3/5] I can't see why it's being disabled but it should never happen so --- NewHorizons/Builder/General/AstroObjectBuilder.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/NewHorizons/Builder/General/AstroObjectBuilder.cs b/NewHorizons/Builder/General/AstroObjectBuilder.cs index aec97f75..dfa81e3c 100644 --- a/NewHorizons/Builder/General/AstroObjectBuilder.cs +++ b/NewHorizons/Builder/General/AstroObjectBuilder.cs @@ -60,11 +60,24 @@ namespace NewHorizons.Builder.General Delay.RunWhen( () => Locator._centerOfTheUniverse != null, - () => Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent() + () => { + Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent(); + } ); + + NeverDeactivateCenterOfTheUniverse(astroObject.gameObject); } return astroObject; } + + private static void NeverDeactivateCenterOfTheUniverse(GameObject centerOfTheUniverse) + { + NHLogger.LogVerbose("Center of the universe cannot be inactive."); + centerOfTheUniverse.SetActive(true); + Delay.RunWhen(() => !centerOfTheUniverse.activeInHierarchy, () => { + NeverDeactivateCenterOfTheUniverse(centerOfTheUniverse); + }); + } } } From 44b6df04d2aee2a2478ef33262bb49bff78dc62c Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 16 Jul 2023 13:05:41 -0400 Subject: [PATCH 4/5] Update manifest.json --- NewHorizons/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NewHorizons/manifest.json b/NewHorizons/manifest.json index 2e669fbc..2ab0644b 100644 --- a/NewHorizons/manifest.json +++ b/NewHorizons/manifest.json @@ -4,7 +4,7 @@ "author": "xen, Bwc9876, clay, MegaPiggy, John, Trifid, Hawkbar, Book", "name": "New Horizons", "uniqueName": "xen.NewHorizons", - "version": "1.12.3", + "version": "1.12.4", "owmlVersion": "2.9.3", "dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ], "conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ], From cffc0632694e11669944e368f75113a445f1e581 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 16 Jul 2023 13:38:33 -0400 Subject: [PATCH 5/5] Use a component instead of silly delay --- .../Builder/General/AstroObjectBuilder.cs | 18 +++---------- .../PreserveActiveCenterOfTheUniverse.cs | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 NewHorizons/Components/PreserveActiveCenterOfTheUniverse.cs diff --git a/NewHorizons/Builder/General/AstroObjectBuilder.cs b/NewHorizons/Builder/General/AstroObjectBuilder.cs index dfa81e3c..8278d056 100644 --- a/NewHorizons/Builder/General/AstroObjectBuilder.cs +++ b/NewHorizons/Builder/General/AstroObjectBuilder.cs @@ -1,3 +1,4 @@ +using NewHorizons.Components; using NewHorizons.Components.Orbital; using NewHorizons.External.Configs; using NewHorizons.Utility.OWML; @@ -60,24 +61,13 @@ namespace NewHorizons.Builder.General Delay.RunWhen( () => Locator._centerOfTheUniverse != null, - () => { - Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent(); - } - ); + () => Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent() + ); - NeverDeactivateCenterOfTheUniverse(astroObject.gameObject); + PreserveActiveCenterOfTheUniverse.Apply(astroObject.gameObject); } return astroObject; } - - private static void NeverDeactivateCenterOfTheUniverse(GameObject centerOfTheUniverse) - { - NHLogger.LogVerbose("Center of the universe cannot be inactive."); - centerOfTheUniverse.SetActive(true); - Delay.RunWhen(() => !centerOfTheUniverse.activeInHierarchy, () => { - NeverDeactivateCenterOfTheUniverse(centerOfTheUniverse); - }); - } } } diff --git a/NewHorizons/Components/PreserveActiveCenterOfTheUniverse.cs b/NewHorizons/Components/PreserveActiveCenterOfTheUniverse.cs new file mode 100644 index 00000000..0e8cd3c0 --- /dev/null +++ b/NewHorizons/Components/PreserveActiveCenterOfTheUniverse.cs @@ -0,0 +1,26 @@ +using NewHorizons.Utility.OWML; +using UnityEngine; + +namespace NewHorizons.Components +{ + // Prevents the center of the universe being deactivated + public class PreserveActiveCenterOfTheUniverse : MonoBehaviour + { + private GameObject _centerOfTheUniverse; + + public static void Apply(GameObject center) + { + var go = new GameObject(nameof(PreserveActiveCenterOfTheUniverse)); + go.AddComponent()._centerOfTheUniverse = center; + } + + public void Update() + { + if (!_centerOfTheUniverse.activeInHierarchy) + { + NHLogger.LogWarning("Center of the universe cannot be inactive."); + _centerOfTheUniverse.SetActive(true); + } + } + } +}