Fix broken patch (#640)

## Bug fixes
- Fixes dying on spawn in Evacuation
- Fixes the player seeing objects loading out when changing star system
- Fixes a NRE on reload without the Stranger

This time without introducing a bug that breaks systems with only a
single planet!
This commit is contained in:
Nick 2023-07-16 14:02:37 -04:00 committed by GitHub
commit e142c4104f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 17 deletions

View File

@ -1,3 +1,4 @@
using NewHorizons.Components;
using NewHorizons.Components.Orbital; using NewHorizons.Components.Orbital;
using NewHorizons.External.Configs; using NewHorizons.External.Configs;
using NewHorizons.Utility.OWML; using NewHorizons.Utility.OWML;
@ -61,7 +62,9 @@ namespace NewHorizons.Builder.General
Delay.RunWhen( Delay.RunWhen(
() => Locator._centerOfTheUniverse != null, () => Locator._centerOfTheUniverse != null,
() => Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent<OWRigidbody>() () => Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent<OWRigidbody>()
); );
PreserveActiveCenterOfTheUniverse.Apply(astroObject.gameObject);
} }
return astroObject; return astroObject;

View File

@ -80,7 +80,7 @@ namespace NewHorizons.Builder.Orbital
} }
else 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.");
} }
} }

View File

@ -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<PreserveActiveCenterOfTheUniverse>()._centerOfTheUniverse = center;
}
public void Update()
{
if (!_centerOfTheUniverse.activeInHierarchy)
{
NHLogger.LogWarning("Center of the universe cannot be inactive.");
_centerOfTheUniverse.SetActive(true);
}
}
}
}

View File

@ -245,20 +245,10 @@ namespace NewHorizons.Handlers
try try
{ {
NHLogger.Log($"Creating [{body.Config.name}]"); NHLogger.Log($"Creating [{body.Config.name}]");
var planetObject = GenerateBody(body, defaultPrimaryToSun); var planetObject = GenerateBody(body, defaultPrimaryToSun)
try ?? throw new NullReferenceException("Something went wrong when generating the body but no errors were logged.");
{
planetObject?.SetActive(true); 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 ao = planetObject.GetComponent<NHAstroObject>(); var ao = planetObject.GetComponent<NHAstroObject>();

View File

@ -4,7 +4,7 @@
"author": "xen, Bwc9876, clay, MegaPiggy, John, Trifid, Hawkbar, Book", "author": "xen, Bwc9876, clay, MegaPiggy, John, Trifid, Hawkbar, Book",
"name": "New Horizons", "name": "New Horizons",
"uniqueName": "xen.NewHorizons", "uniqueName": "xen.NewHorizons",
"version": "1.12.3", "version": "1.12.4",
"owmlVersion": "2.9.3", "owmlVersion": "2.9.3",
"dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ], "dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ],
"conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ], "conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ],