From c303660ecc3b506059f1734a0fd7045549d02923 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Fri, 31 Jan 2025 11:06:25 -0500 Subject: [PATCH 1/7] Add Helper Methods for loading levels, along with loading with Load Fade --- BoneLib/BoneLib/CommonBarcodes.cs | 4 ++ BoneLib/BoneLib/HelperMethods.cs | 83 +++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) diff --git a/BoneLib/BoneLib/CommonBarcodes.cs b/BoneLib/BoneLib/CommonBarcodes.cs index d966894..f1e5b8f 100644 --- a/BoneLib/BoneLib/CommonBarcodes.cs +++ b/BoneLib/BoneLib/CommonBarcodes.cs @@ -391,6 +391,8 @@ public static class Misc PowerPuncher, BoardGun, OmniWay, + LoadFade, + LoadFadeFast, }; public const string GoKart = "fa534c5a83ee4ec6bd641fec424c4142.Spawnable.VehicleGokart"; public const string OmniWay = "fa534c5a868247138f50c62e424c4144.Spawnable.OmniWay"; @@ -403,6 +405,8 @@ public static class Misc public const string GravityCup = "c1534c5a-87ce-436d-b00c-ef9547726176"; public const string GravityPlate = "c1534c5a-a1c3-437b-85ac-e09547726176"; public const string PowerPuncher = " c1534c5a-cebf-42cc-be3a-4595506f7765"; + public const string LoadFade = "none.barcode.empty"; // Input later + public const string LoadFadeFast = "none.barcode.empty"; // Input later } } } \ No newline at end of file diff --git a/BoneLib/BoneLib/HelperMethods.cs b/BoneLib/BoneLib/HelperMethods.cs index 4008bec..b95946a 100644 --- a/BoneLib/BoneLib/HelperMethods.cs +++ b/BoneLib/BoneLib/HelperMethods.cs @@ -66,6 +66,89 @@ public static void SpawnCrate(SpawnableCrateReference crateReference, Vector3 po AssetSpawner.Spawn(spawnable, position, rotation, new Il2CppSystem.Nullable(scale), null, ignorePolicy, new Il2CppSystem.Nullable(), spawnAction, despawnAction); } + /// + /// Loads a level from a crate reference + /// + /// The crate reference to load + public static void LoadLevel(LevelCrateReference level) + { + LoadLevel(level.Barcode.ID, CommonBarcodes.Maps.LoadDefault); + } + + /// + /// Loads a level from a barcode + /// + /// The barcode of the level + public static void LoadLevel(string barcode) + { + LoadLevel(barcode, CommonBarcodes.Maps.LoadDefault); + } + + /// + /// Loads a level from a crate reference + /// + /// The crate reference to load + /// The crate reference for the loading scene + public static void LoadLevel(LevelCrateReference level, LevelCrateReference loadLevel) + { + LoadLevel(level.Barcode.ID, loadLevel.Barcode.ID); + } + + /// + /// Loads a level from a barcode + /// + /// The barcode of the level + /// The barcode of the loading scene + public static void LoadLevel(string levelBarcode, string loadLevelBarcode) + { + SceneStreamer.Load(new Barcode(levelBarcode), new Barcode(loadLevelBarcode)); + } + + /// + /// Loads a level from a crate reference with load fade + /// + /// The crate reference to load + public static void FadeLoadLevel(LevelCrateReference level) + { + FadeLoadLevel(level.Barcode.ID, CommonBarcodes.Maps.LoadDefault); + } + + /// + /// Loads a level from a barcode with load fade + /// + /// The barcode of the level + public static void FadeLoadLevel(string barcode) + { + FadeLoadLevel(barcode, CommonBarcodes.Maps.LoadDefault); + } + + /// + /// Loads a level from a crate reference with load fade + /// + /// The crate reference to load + /// The crate reference for the loading scene + public static void FadeLoadLevel(LevelCrateReference level, LevelCrateReference loadLevel) + { + FadeLoadLevel(level.Barcode.ID, loadLevel.Barcode.ID); + } + + /// + /// Loads a level from a barcode with load fade + /// + /// The barcode of the level + /// The barcode of the loading scene + public static void FadeLoadLevel(string levelBarcode, string loadLevelBarcode) + { + MelonCoroutines.Start(FadeIntoLevel(new Barcode(levelBarcode), new Barcode(loadLevelBarcode))); + } + + private static IEnumerator FadeIntoLevel(Barcode level, Barcode loadScene) + { + SpawnCrate(CommonBarcodes.Misc.LoadFade, Vector3.zero); + yield return new WaitForSeconds(2); + SceneStreamer.Load(level, loadScene); + } + /// /// Checks if the player is in a loading screen or not /// From fe58e98d5a7c29e083b6c17cf199bbc9ae816014 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Fri, 31 Jan 2025 11:22:54 -0500 Subject: [PATCH 2/7] LoadRandomLevel now fade-loads (fade loading peak) --- BoneLib/BoneLib/BoneMenu/DefaultMenu.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs b/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs index 44d438f..dd95f17 100644 --- a/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs +++ b/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs @@ -123,7 +123,7 @@ internal static void LoadRandomLevel() int index = Random.RandomRangeInt(0, CommonBarcodes.Maps.All.Count); string barcode = CommonBarcodes.Maps.All[index]; - SceneStreamer.Load(new Barcode(barcode), new Barcode(CommonBarcodes.Maps.LoadDefault)); + HelperMethods.FadeLoadLevel(barcode, CommonBarcodes.Maps.LoadDefault); } } } From 6e0ed4e607fd137dcac440af8ea918a506d8c3e7 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Fri, 31 Jan 2025 11:30:29 -0500 Subject: [PATCH 3/7] Added options for fast load fade --- BoneLib/BoneLib/HelperMethods.cs | 36 +++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/BoneLib/BoneLib/HelperMethods.cs b/BoneLib/BoneLib/HelperMethods.cs index b95946a..9b2c9f1 100644 --- a/BoneLib/BoneLib/HelperMethods.cs +++ b/BoneLib/BoneLib/HelperMethods.cs @@ -108,18 +108,20 @@ public static void LoadLevel(string levelBarcode, string loadLevelBarcode) /// Loads a level from a crate reference with load fade /// /// The crate reference to load - public static void FadeLoadLevel(LevelCrateReference level) + /// When true, loads with a faster fade + public static void FadeLoadLevel(LevelCrateReference level, bool fastFade = false) { - FadeLoadLevel(level.Barcode.ID, CommonBarcodes.Maps.LoadDefault); + FadeLoadLevel(level.Barcode.ID, CommonBarcodes.Maps.LoadDefault, fastFade); } /// /// Loads a level from a barcode with load fade /// /// The barcode of the level - public static void FadeLoadLevel(string barcode) + /// When true, loads with a faster fade + public static void FadeLoadLevel(string barcode, bool fastFade = false) { - FadeLoadLevel(barcode, CommonBarcodes.Maps.LoadDefault); + FadeLoadLevel(barcode, CommonBarcodes.Maps.LoadDefault, fastFade); } /// @@ -127,9 +129,10 @@ public static void FadeLoadLevel(string barcode) /// /// The crate reference to load /// The crate reference for the loading scene - public static void FadeLoadLevel(LevelCrateReference level, LevelCrateReference loadLevel) + /// When true, loads with a faster fade + public static void FadeLoadLevel(LevelCrateReference level, LevelCrateReference loadLevel, bool fastFade = false) { - FadeLoadLevel(level.Barcode.ID, loadLevel.Barcode.ID); + FadeLoadLevel(level.Barcode.ID, loadLevel.Barcode.ID, fastFade); } /// @@ -137,16 +140,25 @@ public static void FadeLoadLevel(LevelCrateReference level, LevelCrateReference /// /// The barcode of the level /// The barcode of the loading scene - public static void FadeLoadLevel(string levelBarcode, string loadLevelBarcode) + /// When true, loads with a faster fade + public static void FadeLoadLevel(string levelBarcode, string loadLevelBarcode, bool fastFade = false) { - MelonCoroutines.Start(FadeIntoLevel(new Barcode(levelBarcode), new Barcode(loadLevelBarcode))); + MelonCoroutines.Start(FadeIntoLevel(new Barcode(levelBarcode), new Barcode(loadLevelBarcode), fastFade)); } - private static IEnumerator FadeIntoLevel(Barcode level, Barcode loadScene) + private static IEnumerator FadeIntoLevel(Barcode level, Barcode loadScene, bool fastFade = false) { - SpawnCrate(CommonBarcodes.Misc.LoadFade, Vector3.zero); - yield return new WaitForSeconds(2); - SceneStreamer.Load(level, loadScene); + if(fadeFast) + { + SpawnCrate(CommonBarcodes.Misc.LoadFadeFast, Vector3.zero); + yield return new WaitForSeconds(1); // Need to ensure timing is correct, might be 0.5 + } + else + { + SpawnCrate(CommonBarcodes.Misc.LoadFade, Vector3.zero); + yield return new WaitForSeconds(2); + } + LoadLevel(level, loadScene); } /// From 3c203ebafd43d50a8b9165ca27b87c55b7bf7599 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Fri, 31 Jan 2025 22:53:36 -0500 Subject: [PATCH 4/7] Update CommonBarcodes.cs with Fade Barcodes --- BoneLib/BoneLib/CommonBarcodes.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/BoneLib/BoneLib/CommonBarcodes.cs b/BoneLib/BoneLib/CommonBarcodes.cs index f1e5b8f..9e7bb11 100644 --- a/BoneLib/BoneLib/CommonBarcodes.cs +++ b/BoneLib/BoneLib/CommonBarcodes.cs @@ -391,8 +391,6 @@ public static class Misc PowerPuncher, BoardGun, OmniWay, - LoadFade, - LoadFadeFast, }; public const string GoKart = "fa534c5a83ee4ec6bd641fec424c4142.Spawnable.VehicleGokart"; public const string OmniWay = "fa534c5a868247138f50c62e424c4144.Spawnable.OmniWay"; @@ -405,8 +403,8 @@ public static class Misc public const string GravityCup = "c1534c5a-87ce-436d-b00c-ef9547726176"; public const string GravityPlate = "c1534c5a-a1c3-437b-85ac-e09547726176"; public const string PowerPuncher = " c1534c5a-cebf-42cc-be3a-4595506f7765"; - public const string LoadFade = "none.barcode.empty"; // Input later - public const string LoadFadeFast = "none.barcode.empty"; // Input later + public const string LoadFade = "c1534c5a-dac0-44a1-b656-6c235646584c"; + public const string LoadFadeFast = "c1534c5a-84f0-4d2b-b4d7-64405646584c"; } } -} \ No newline at end of file +} From 6c067ef19006de4b3e27285ebb5046f681b4a3f5 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Fri, 31 Jan 2025 22:56:10 -0500 Subject: [PATCH 5/7] Update HelperMethods.cs --- BoneLib/BoneLib/HelperMethods.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BoneLib/BoneLib/HelperMethods.cs b/BoneLib/BoneLib/HelperMethods.cs index 9b2c9f1..18df206 100644 --- a/BoneLib/BoneLib/HelperMethods.cs +++ b/BoneLib/BoneLib/HelperMethods.cs @@ -151,7 +151,7 @@ private static IEnumerator FadeIntoLevel(Barcode level, Barcode loadScene, bool if(fadeFast) { SpawnCrate(CommonBarcodes.Misc.LoadFadeFast, Vector3.zero); - yield return new WaitForSeconds(1); // Need to ensure timing is correct, might be 0.5 + yield return new WaitForSeconds(0.5f); } else { From c24cdaace4e8f17d5884b2bfc2214fd0f8817bd4 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:51:53 -0500 Subject: [PATCH 6/7] Removed unnesecary load screen barcode --- BoneLib/BoneLib/BoneMenu/DefaultMenu.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs b/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs index dd95f17..867dfd3 100644 --- a/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs +++ b/BoneLib/BoneLib/BoneMenu/DefaultMenu.cs @@ -123,7 +123,7 @@ internal static void LoadRandomLevel() int index = Random.RandomRangeInt(0, CommonBarcodes.Maps.All.Count); string barcode = CommonBarcodes.Maps.All[index]; - HelperMethods.FadeLoadLevel(barcode, CommonBarcodes.Maps.LoadDefault); + HelperMethods.FadeLoadLevel(barcode); } } } From 1d8d0bee94f5bd356ce3ff704f8f9f4c3e954e28 Mon Sep 17 00:00:00 2001 From: EvroDev <78891194+EvroDeveloper@users.noreply.github.com> Date: Wed, 5 Feb 2025 08:39:29 -0500 Subject: [PATCH 7/7] Tweaked parameter documentation and fixed IEnumerator --- BoneLib/BoneLib/HelperMethods.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/BoneLib/BoneLib/HelperMethods.cs b/BoneLib/BoneLib/HelperMethods.cs index 18df206..09f8290 100644 --- a/BoneLib/BoneLib/HelperMethods.cs +++ b/BoneLib/BoneLib/HelperMethods.cs @@ -108,7 +108,7 @@ public static void LoadLevel(string levelBarcode, string loadLevelBarcode) /// Loads a level from a crate reference with load fade /// /// The crate reference to load - /// When true, loads with a faster fade + /// When true, loads with a faster fade public static void FadeLoadLevel(LevelCrateReference level, bool fastFade = false) { FadeLoadLevel(level.Barcode.ID, CommonBarcodes.Maps.LoadDefault, fastFade); @@ -118,7 +118,7 @@ public static void FadeLoadLevel(LevelCrateReference level, bool fastFade = fals /// Loads a level from a barcode with load fade /// /// The barcode of the level - /// When true, loads with a faster fade + /// When true, loads with a faster fade public static void FadeLoadLevel(string barcode, bool fastFade = false) { FadeLoadLevel(barcode, CommonBarcodes.Maps.LoadDefault, fastFade); @@ -129,7 +129,7 @@ public static void FadeLoadLevel(string barcode, bool fastFade = false) /// /// The crate reference to load /// The crate reference for the loading scene - /// When true, loads with a faster fade + /// When true, loads with a faster fade public static void FadeLoadLevel(LevelCrateReference level, LevelCrateReference loadLevel, bool fastFade = false) { FadeLoadLevel(level.Barcode.ID, loadLevel.Barcode.ID, fastFade); @@ -140,15 +140,15 @@ public static void FadeLoadLevel(LevelCrateReference level, LevelCrateReference /// /// The barcode of the level /// The barcode of the loading scene - /// When true, loads with a faster fade + /// When true, loads with a faster fade public static void FadeLoadLevel(string levelBarcode, string loadLevelBarcode, bool fastFade = false) { - MelonCoroutines.Start(FadeIntoLevel(new Barcode(levelBarcode), new Barcode(loadLevelBarcode), fastFade)); + MelonCoroutines.Start(FadeIntoLevel(levelBarcode, loadLevelBarcode, fastFade)); } - private static IEnumerator FadeIntoLevel(Barcode level, Barcode loadScene, bool fastFade = false) + private static System.Collections.IEnumerator FadeIntoLevel(string levelBarcode, string loadSceneBarcode, bool fastFade = false) { - if(fadeFast) + if(fastFade) { SpawnCrate(CommonBarcodes.Misc.LoadFadeFast, Vector3.zero); yield return new WaitForSeconds(0.5f); @@ -158,7 +158,7 @@ private static IEnumerator FadeIntoLevel(Barcode level, Barcode loadScene, bool SpawnCrate(CommonBarcodes.Misc.LoadFade, Vector3.zero); yield return new WaitForSeconds(2); } - LoadLevel(level, loadScene); + LoadLevel(levelBarcode, loadSceneBarcode); } ///