diff --git a/NewHorizons/Builder/Atmosphere/AirBuilder.cs b/NewHorizons/Builder/Atmosphere/AirBuilder.cs index b3cda09b..a916658d 100644 --- a/NewHorizons/Builder/Atmosphere/AirBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/AirBuilder.cs @@ -7,16 +7,16 @@ namespace NewHorizons.Builder.Atmosphere { public static void Make(GameObject planetGO, Sector sector, PlanetConfig config) { - GameObject airGO = new GameObject("Air"); + var airGO = new GameObject("Air"); airGO.SetActive(false); airGO.layer = 17; airGO.transform.parent = sector?.transform ? sector.transform : planetGO.transform; - SphereCollider sc = airGO.AddComponent(); + var sc = airGO.AddComponent(); sc.isTrigger = true; sc.radius = config.Atmosphere.size; - SimpleFluidVolume sfv = airGO.AddComponent(); + var sfv = airGO.AddComponent(); sfv._layer = 5; sfv._priority = 1; sfv._density = 1.2f; @@ -24,7 +24,11 @@ namespace NewHorizons.Builder.Atmosphere sfv._allowShipAutoroll = true; sfv._disableOnStart = false; - ShockLayerRuleset shockLayerRuleset = planetGO.GetComponentInChildren().gameObject.AddComponent(); + // Try to parent it to the same as other rulesets to match vanilla but if its null put it on the root object + var ruleSetGO = planetGO.GetComponentInChildren()?.gameObject; + if (ruleSetGO == null) ruleSetGO = planetGO; + + var shockLayerRuleset = ruleSetGO.AddComponent(); shockLayerRuleset._type = ShockLayerRuleset.ShockType.Atmospheric; shockLayerRuleset._radialCenter = airGO.transform; shockLayerRuleset._minShockSpeed = config.Atmosphere.minShockSpeed; @@ -56,7 +60,7 @@ namespace NewHorizons.Builder.Atmosphere vref._layer = 0; vref._priority = 0; - AudioSource AS = airGO.AddComponent(); + var AS = airGO.AddComponent(); AS.mute = false; AS.bypassEffects = false; AS.bypassListenerEffects = false; diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index d666420a..fb413718 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -525,7 +525,8 @@ namespace NewHorizons.Handlers { var surfaceSize = body.Config.Base.surfaceSize; - AirBuilder.Make(go, sector, body.Config); + if (body.Config.Atmosphere.size != 0) + AirBuilder.Make(go, sector, body.Config); if (!string.IsNullOrEmpty(body.Config.Atmosphere?.clouds?.texturePath)) {