mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix effect ruleset + fix fog sphere size (shared material bad)
This commit is contained in:
parent
aec10970cd
commit
e916471e19
@ -210,15 +210,7 @@ namespace NewHorizons.Builder.Props
|
||||
}
|
||||
|
||||
// Set up screen fog effect
|
||||
// (in the base game, any sector that contains a bramble node needs an EffectRuleset with type FogWarp)
|
||||
// (this isn't jank I swear, this is how it's supposed to work)
|
||||
var sectorHasFogEffectRuleset = sector
|
||||
.GetComponents<EffectRuleset>()
|
||||
.Any(effectRuleset => effectRuleset._type == EffectRuleset.BubbleType.FogWarp);
|
||||
|
||||
if (!sectorHasFogEffectRuleset)
|
||||
{
|
||||
var fogEffectRuleset = sector.gameObject.AddComponent<EffectRuleset>();
|
||||
var fogEffectRuleset = sector.gameObject.GetAddComponent<EffectRuleset>();
|
||||
fogEffectRuleset._attachedBody = sector.GetAttachedOWRigidbody();
|
||||
fogEffectRuleset._triggerVolume = sector.GetTriggerVolume();
|
||||
fogEffectRuleset._type = EffectRuleset.BubbleType.FogWarp;
|
||||
@ -226,7 +218,6 @@ namespace NewHorizons.Builder.Props
|
||||
fogEffectRuleset._underwaterMaxDistort = 0.1f;
|
||||
fogEffectRuleset._underwaterMinDistort = 0.005f;
|
||||
fogEffectRuleset._material = GameObject.Find("DB_PioneerDimension_Body/Sector_PioneerDimension").GetComponent<EffectRuleset>()._material;
|
||||
}
|
||||
|
||||
// TODO: replace InnerFogWarpVolume with NHInnerFogWarpVolume, which overrides GetFogDensity to
|
||||
// account for scale (this will fix the issue with screen fog caused by scaled down nodes)
|
||||
@ -241,7 +232,9 @@ namespace NewHorizons.Builder.Props
|
||||
if (!config.isSeed)
|
||||
{
|
||||
var fog = brambleNode.FindChild("Effects/InnerWarpFogSphere");
|
||||
var fogMaterial = fog.GetComponent<MeshRenderer>().sharedMaterial;
|
||||
var fogMR = fog.GetComponent<MeshRenderer>();
|
||||
var fogMaterial = new Material(fogMR.sharedMaterial);
|
||||
fogMR.material = fogMaterial;
|
||||
fog.transform.localScale /= config.scale;
|
||||
fogMaterial.SetFloat("_Radius", fogMaterial.GetFloat("_Radius") * config.scale);
|
||||
fogMaterial.SetFloat("_Density", fogMaterial.GetFloat("_Density") / config.scale);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user