mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Potentially fix NRE when adding fog to non-planets
This commit is contained in:
parent
51b6cf7d4c
commit
c15ccef4f8
@ -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<SphereCollider>();
|
||||
var sc = airGO.AddComponent<SphereCollider>();
|
||||
sc.isTrigger = true;
|
||||
sc.radius = config.Atmosphere.size;
|
||||
|
||||
SimpleFluidVolume sfv = airGO.AddComponent<SimpleFluidVolume>();
|
||||
var sfv = airGO.AddComponent<SimpleFluidVolume>();
|
||||
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<PlanetoidRuleset>().gameObject.AddComponent<ShockLayerRuleset>();
|
||||
// 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<PlanetoidRuleset>()?.gameObject;
|
||||
if (ruleSetGO == null) ruleSetGO = planetGO;
|
||||
|
||||
var shockLayerRuleset = ruleSetGO.AddComponent<ShockLayerRuleset>();
|
||||
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<AudioSource>();
|
||||
var AS = airGO.AddComponent<AudioSource>();
|
||||
AS.mute = false;
|
||||
AS.bypassEffects = false;
|
||||
AS.bypassListenerEffects = false;
|
||||
|
||||
@ -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))
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user