From 11ddbe24ffe0433d3aa497db350a0c806c146533 Mon Sep 17 00:00:00 2001 From: FreezeDriedMangoes Date: Tue, 12 Jul 2022 22:58:09 -0400 Subject: [PATCH] added effect ruleset to any sector containing a bramble node to support the screen fog effect --- .../Builder/Props/BrambleNodeBuilder.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs index 70a2813c..c8e9cdb6 100644 --- a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs +++ b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs @@ -214,6 +214,27 @@ namespace NewHorizons.Builder.Props sector.RegisterFogLight(fogLight); + // 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() + .Where(effectRuleset => effectRuleset._type == EffectRuleset.BubbleType.FogWarp) + .Count() > 0; + if (!sectorHasFogEffectRuleset) + { + var fogEffectRuleset = sector.gameObject.AddComponent(); + fogEffectRuleset._attachedBody = sector.GetAttachedOWRigidbody(); + fogEffectRuleset._triggerVolume = sector.GetTriggerVolume(); + fogEffectRuleset._type = EffectRuleset.BubbleType.FogWarp; + fogEffectRuleset._underwaterDistortScale = 0.001f; + fogEffectRuleset._underwaterMaxDistort = 0.1f; + fogEffectRuleset._underwaterMinDistort = 0.005f; + fogEffectRuleset._material = GameObject.Find("DB_PioneerDimension_Body/Sector_PioneerDimension").GetComponent()._material; + } + + //TODO: replace InnerFogWarpVolume with NHInnerFogWarpVolume, which overrides GetFogDensity to account for scale + // Set the scale brambleNode.transform.localScale = Vector3.one * config.scale; innerFogWarpVolume._warpRadius *= config.scale;