diff --git a/NewHorizons/Builder/Body/BrambleDimensionBuilder.cs b/NewHorizons/Builder/Body/BrambleDimensionBuilder.cs index 4796405e..1a7fa141 100644 --- a/NewHorizons/Builder/Body/BrambleDimensionBuilder.cs +++ b/NewHorizons/Builder/Body/BrambleDimensionBuilder.cs @@ -89,6 +89,9 @@ namespace NewHorizons.Builder.Body fog.fogTint = body.Config.Bramble.dimension.fogTint.ToColor(); } + // clear base game fog lights + dimensionSector.GetComponent()._fogLightsInSector = null; + dimension.SetActive(true); return dimension; diff --git a/NewHorizons/Builder/General/AstroObjectBuilder.cs b/NewHorizons/Builder/General/AstroObjectBuilder.cs index 0e17e777..09a76181 100644 --- a/NewHorizons/Builder/General/AstroObjectBuilder.cs +++ b/NewHorizons/Builder/General/AstroObjectBuilder.cs @@ -51,7 +51,7 @@ namespace NewHorizons.Builder.General { Logger.Log($"Setting center of universe to {config.name}"); // By the time it runs we'll be able to get the OWRB with the method - Main.Instance.ModHelper.Events.Unity.FireInNUpdates(() => Locator.GetCenterOfTheUniverse()._staticReferenceFrame = astroObject.GetAttachedOWRigidbody(), 2); + Locator.GetCenterOfTheUniverse()._staticReferenceFrame = astroObject.gameObject.GetComponent(); } return astroObject; diff --git a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs index 071e0e1a..4cd64f75 100644 --- a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs +++ b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs @@ -142,6 +142,9 @@ namespace NewHorizons.Builder.Props nodeWarp._linkedOuterWarpVolume = destination; destination.RegisterSenderWarp(nodeWarp); + + var fogLight = nodeWarp.GetComponent(); + fogLight._linkedSector = destinationAO._rootSector; return true; } @@ -176,6 +179,19 @@ namespace NewHorizons.Builder.Props GameObject.Destroy(brambleNode.FindChild("Signal_Harmonica")); + // + // Fix some components + // + + var fogLight = brambleNode.GetComponent(); + fogLight._parentBody = go.GetComponent(); + fogLight._sector = sector; + fogLight._linkedFogLights.Clear(); + fogLight._linkedLightData.Clear(); + fogLight._linkedSector = null; + + sector.RegisterFogLight(fogLight); + // // Set the scale // diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index 7dbe1f88..e9c2e256 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -411,8 +411,9 @@ namespace NewHorizons.Handlers DetectorBuilder.Make(go, owRigidBody, primaryBody, ao, body.Config); } else if (body.Config.Orbit.staticPosition != null) - { - ao.transform.position = body.Config.Orbit.staticPosition; + { + // NH doesn't set the value of _centerOfTheUniverse for a few frames + ao.transform.position = body.Config.Orbit.staticPosition + Locator._centerOfTheUniverse._staticReferenceFrame._lastPosition; } if (ao.GetAstroObjectName() == AstroObject.Name.CustomString)