From afe2bd558a9d8002444a7012b6f0cae95be35fbd Mon Sep 17 00:00:00 2001 From: xen-42 Date: Sun, 6 Oct 2024 12:26:53 -0400 Subject: [PATCH] Allow NH water to extinguish dreamworld lanterns --- .../Components/EOTE/LanternExtinguisher.cs | 23 +++++++++++++++++++ NewHorizons/External/Modules/DreamModule.cs | 5 ---- NewHorizons/Main.cs | 2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 NewHorizons/Components/EOTE/LanternExtinguisher.cs diff --git a/NewHorizons/Components/EOTE/LanternExtinguisher.cs b/NewHorizons/Components/EOTE/LanternExtinguisher.cs new file mode 100644 index 00000000..26d1b2a0 --- /dev/null +++ b/NewHorizons/Components/EOTE/LanternExtinguisher.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace NewHorizons.Components.EOTE; + +public class LanternExtinguisher : MonoBehaviour +{ + public void Update() + { + if (PlayerState.InDreamWorld() && PlayerState.IsCameraUnderwater()) + { + var heldItem = Locator.GetToolModeSwapper().GetItemCarryTool().GetHeldItem(); + if (heldItem is DreamLanternItem lantern && lantern._lanternController._lit) + { + Locator.GetDreamWorldController().ExitDreamWorld(DreamWakeType.LanternSubmerged); + } + } + } +} diff --git a/NewHorizons/External/Modules/DreamModule.cs b/NewHorizons/External/Modules/DreamModule.cs index 1d422689..c8b7fd2f 100644 --- a/NewHorizons/External/Modules/DreamModule.cs +++ b/NewHorizons/External/Modules/DreamModule.cs @@ -1,9 +1,4 @@ using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace NewHorizons.External.Modules { diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 57b6c619..08dd728c 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -6,6 +6,7 @@ using NewHorizons.Builder.Props; using NewHorizons.Builder.Props.Audio; using NewHorizons.Builder.Props.EchoesOfTheEye; using NewHorizons.Builder.Props.TranslatorText; +using NewHorizons.Components.EOTE; using NewHorizons.Components.Fixers; using NewHorizons.Components.Ship; using NewHorizons.Components.SizeControllers; @@ -622,6 +623,7 @@ namespace NewHorizons Locator.GetPlayerBody().gameObject.AddComponent(); Locator.GetPlayerBody().gameObject.AddComponent(); Locator.GetPlayerBody().gameObject.AddComponent(); + if (HasDLC) Locator.GetPlayerBody().gameObject.AddComponent(); PlayerSpawnHandler.OnSystemReady(shouldWarpInFromShip, shouldWarpInFromVessel);