From bddcd88b1665ee07aef98c7adab8b1ae3fe86b68 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 4 Jun 2024 01:08:28 -0400 Subject: [PATCH 1/5] Don't just cut to black --- NewHorizons/Handlers/FadeHandler.cs | 6 ++++-- NewHorizons/Main.cs | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/NewHorizons/Handlers/FadeHandler.cs b/NewHorizons/Handlers/FadeHandler.cs index fbaa0b5b..ded72444 100644 --- a/NewHorizons/Handlers/FadeHandler.cs +++ b/NewHorizons/Handlers/FadeHandler.cs @@ -25,12 +25,14 @@ namespace NewHorizons.Handlers yield return new WaitForEndOfFrame(); } - public static void FadeThen(float length, Action action) => Delay.StartCoroutine(FadeThenCoroutine(length, action)); + public static void FadeThen(float length, float totalTime, Action action) => Delay.StartCoroutine(FadeThenCoroutine(length, totalTime, action)); - private static IEnumerator FadeThenCoroutine(float length, Action action) + private static IEnumerator FadeThenCoroutine(float length, float totalTime, Action action) { yield return FadeOutCoroutine(length); + yield return new WaitForSeconds(totalTime - length); + action?.Invoke(); } } diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 7ca6e322..a90fabf2 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -970,11 +970,13 @@ namespace NewHorizons OWInput.ChangeInputMode(InputMode.None); // Hide unloading - ManualOnStartSceneLoad(sceneToLoad); - FadeHandler.FadeThen(1f, () => + // When warping with the ship or vessel there are graphical effects we want to see! Do not pause immediately or cut to black immediately + // Otherwise we fade to black much quicker. Still wait a bit for the sound effects to finish + FadeHandler.FadeThen(IsWarpingFromShip || IsWarpingFromVessel ? 1f : 0.2f, 1.2f, () => { // Slide reel unloading is tied to being removed from the sector, so we do that here to prevent a softlock Locator.GetPlayerSectorDetector().RemoveFromAllSectors(); + ManualOnStartSceneLoad(sceneToLoad); LoadManager.LoadSceneImmediate(sceneToLoad); }); } From af256ac164012a300ae6ad0a5be73000a8704ad8 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 4 Jun 2024 09:25:41 -0700 Subject: [PATCH 2/5] update manifest --- NewHorizons/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NewHorizons/manifest.json b/NewHorizons/manifest.json index 222822d4..eb1e7d3f 100644 --- a/NewHorizons/manifest.json +++ b/NewHorizons/manifest.json @@ -4,7 +4,7 @@ "author": "xen, Bwc9876, JohnCorby, MegaPiggy, Clay, Trifid, and friends", "name": "New Horizons", "uniqueName": "xen.NewHorizons", - "version": "1.20.3", + "version": "1.20.4", "owmlVersion": "2.10.3", "dependencies": [ "JohnCorby.VanillaFix", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ], "conflicts": [ "PacificEngine.OW_CommonResources" ], From 02642983b51afdfa5f1d4e8cdef63d45e1892272 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 4 Jun 2024 09:25:55 -0700 Subject: [PATCH 3/5] Revert "Don't just cut to black" This reverts commit bddcd88b1665ee07aef98c7adab8b1ae3fe86b68. --- NewHorizons/Handlers/FadeHandler.cs | 6 ++---- NewHorizons/Main.cs | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/NewHorizons/Handlers/FadeHandler.cs b/NewHorizons/Handlers/FadeHandler.cs index ded72444..fbaa0b5b 100644 --- a/NewHorizons/Handlers/FadeHandler.cs +++ b/NewHorizons/Handlers/FadeHandler.cs @@ -25,14 +25,12 @@ namespace NewHorizons.Handlers yield return new WaitForEndOfFrame(); } - public static void FadeThen(float length, float totalTime, Action action) => Delay.StartCoroutine(FadeThenCoroutine(length, totalTime, action)); + public static void FadeThen(float length, Action action) => Delay.StartCoroutine(FadeThenCoroutine(length, action)); - private static IEnumerator FadeThenCoroutine(float length, float totalTime, Action action) + private static IEnumerator FadeThenCoroutine(float length, Action action) { yield return FadeOutCoroutine(length); - yield return new WaitForSeconds(totalTime - length); - action?.Invoke(); } } diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index a90fabf2..7ca6e322 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -970,13 +970,11 @@ namespace NewHorizons OWInput.ChangeInputMode(InputMode.None); // Hide unloading - // When warping with the ship or vessel there are graphical effects we want to see! Do not pause immediately or cut to black immediately - // Otherwise we fade to black much quicker. Still wait a bit for the sound effects to finish - FadeHandler.FadeThen(IsWarpingFromShip || IsWarpingFromVessel ? 1f : 0.2f, 1.2f, () => + ManualOnStartSceneLoad(sceneToLoad); + FadeHandler.FadeThen(1f, () => { // Slide reel unloading is tied to being removed from the sector, so we do that here to prevent a softlock Locator.GetPlayerSectorDetector().RemoveFromAllSectors(); - ManualOnStartSceneLoad(sceneToLoad); LoadManager.LoadSceneImmediate(sceneToLoad); }); } From 755ba74fccfa447812cdf729a766c2fc663ce066 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 4 Jun 2024 09:29:09 -0700 Subject: [PATCH 4/5] dont pause before fade --- NewHorizons/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 7ca6e322..95545ca3 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -970,11 +970,11 @@ namespace NewHorizons OWInput.ChangeInputMode(InputMode.None); // Hide unloading - ManualOnStartSceneLoad(sceneToLoad); FadeHandler.FadeThen(1f, () => { // Slide reel unloading is tied to being removed from the sector, so we do that here to prevent a softlock Locator.GetPlayerSectorDetector().RemoveFromAllSectors(); + ManualOnStartSceneLoad(sceneToLoad); // putting it before fade breaks ship warp effect cuz pause LoadManager.LoadSceneImmediate(sceneToLoad); }); } From d65daf10dffea0de8811143ac48aa27585284f51 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 4 Jun 2024 09:32:12 -0700 Subject: [PATCH 5/5] fade out audio in FadeHandler --- NewHorizons/Handlers/FadeHandler.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/NewHorizons/Handlers/FadeHandler.cs b/NewHorizons/Handlers/FadeHandler.cs index fbaa0b5b..f9d6d4ff 100644 --- a/NewHorizons/Handlers/FadeHandler.cs +++ b/NewHorizons/Handlers/FadeHandler.cs @@ -5,6 +5,10 @@ using UnityEngine; namespace NewHorizons.Handlers { + /// + /// copied from LoadManager. + /// exists so we can do things after the fade without patching. + /// public static class FadeHandler { public static void FadeOut(float length) => Delay.StartCoroutine(FadeOutCoroutine(length)); @@ -17,11 +21,14 @@ namespace NewHorizons.Handlers while (Time.unscaledTime < endTime) { - LoadManager.s_instance._fadeImage.color = Color.Lerp(Color.clear, Color.black, (Time.unscaledTime - startTime) / length); + var t = Mathf.Clamp01((Time.unscaledTime - startTime) / length); + LoadManager.s_instance._fadeImage.color = Color.Lerp(Color.clear, Color.black, t); + AudioListener.volume = 1f - t; yield return new WaitForEndOfFrame(); } LoadManager.s_instance._fadeImage.color = Color.black; + AudioListener.volume = 0; yield return new WaitForEndOfFrame(); }