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)
|
public static void Make(GameObject planetGO, Sector sector, PlanetConfig config)
|
||||||
{
|
{
|
||||||
GameObject airGO = new GameObject("Air");
|
var airGO = new GameObject("Air");
|
||||||
airGO.SetActive(false);
|
airGO.SetActive(false);
|
||||||
airGO.layer = 17;
|
airGO.layer = 17;
|
||||||
airGO.transform.parent = sector?.transform ? sector.transform : planetGO.transform;
|
airGO.transform.parent = sector?.transform ? sector.transform : planetGO.transform;
|
||||||
|
|
||||||
SphereCollider sc = airGO.AddComponent<SphereCollider>();
|
var sc = airGO.AddComponent<SphereCollider>();
|
||||||
sc.isTrigger = true;
|
sc.isTrigger = true;
|
||||||
sc.radius = config.Atmosphere.size;
|
sc.radius = config.Atmosphere.size;
|
||||||
|
|
||||||
SimpleFluidVolume sfv = airGO.AddComponent<SimpleFluidVolume>();
|
var sfv = airGO.AddComponent<SimpleFluidVolume>();
|
||||||
sfv._layer = 5;
|
sfv._layer = 5;
|
||||||
sfv._priority = 1;
|
sfv._priority = 1;
|
||||||
sfv._density = 1.2f;
|
sfv._density = 1.2f;
|
||||||
@ -24,7 +24,11 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
sfv._allowShipAutoroll = true;
|
sfv._allowShipAutoroll = true;
|
||||||
sfv._disableOnStart = false;
|
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._type = ShockLayerRuleset.ShockType.Atmospheric;
|
||||||
shockLayerRuleset._radialCenter = airGO.transform;
|
shockLayerRuleset._radialCenter = airGO.transform;
|
||||||
shockLayerRuleset._minShockSpeed = config.Atmosphere.minShockSpeed;
|
shockLayerRuleset._minShockSpeed = config.Atmosphere.minShockSpeed;
|
||||||
@ -56,7 +60,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
vref._layer = 0;
|
vref._layer = 0;
|
||||||
vref._priority = 0;
|
vref._priority = 0;
|
||||||
|
|
||||||
AudioSource AS = airGO.AddComponent<AudioSource>();
|
var AS = airGO.AddComponent<AudioSource>();
|
||||||
AS.mute = false;
|
AS.mute = false;
|
||||||
AS.bypassEffects = false;
|
AS.bypassEffects = false;
|
||||||
AS.bypassListenerEffects = false;
|
AS.bypassListenerEffects = false;
|
||||||
|
|||||||
@ -525,7 +525,8 @@ namespace NewHorizons.Handlers
|
|||||||
{
|
{
|
||||||
var surfaceSize = body.Config.Base.surfaceSize;
|
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))
|
if (!string.IsNullOrEmpty(body.Config.Atmosphere?.clouds?.texturePath))
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user