diff --git a/BloonsTD6 Mod Helper/Extensions/Il2CppSystemExtensions/Il2CppSystemDictionaryExt.cs b/BloonsTD6 Mod Helper/Extensions/Il2CppSystemExtensions/Il2CppSystemDictionaryExt.cs index 15b2a4041..3f26991b4 100644 --- a/BloonsTD6 Mod Helper/Extensions/Il2CppSystemExtensions/Il2CppSystemDictionaryExt.cs +++ b/BloonsTD6 Mod Helper/Extensions/Il2CppSystemExtensions/Il2CppSystemDictionaryExt.cs @@ -12,7 +12,7 @@ public static class Il2CppSystemDictionaryExt /// public static List GetValues(this Dictionary keyValuePairs) { - return keyValuePairs._entries.Select(entry => entry.value).ToIl2CppList(); + return keyValuePairs._entries.Select(entry => entry.value).Take(keyValuePairs.Count).ToIl2CppList(); } diff --git a/BloonsTD6 Mod Helper/Extensions/UnityExtensions/RendererExt.cs b/BloonsTD6 Mod Helper/Extensions/UnityExtensions/RendererExt.cs index feb4edcd4..ee02fdbf1 100644 --- a/BloonsTD6 Mod Helper/Extensions/UnityExtensions/RendererExt.cs +++ b/BloonsTD6 Mod Helper/Extensions/UnityExtensions/RendererExt.cs @@ -1,6 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; +using Il2CppAssets.Scripts.Models.GenericBehaviors; +using Il2CppAssets.Scripts.Models.Towers; +using Il2CppAssets.Scripts.Unity; +using Il2CppAssets.Scripts.Unity.Display; +using Il2CppNinjaKiwi.Common.ResourceUtils; using UnityEngine; using Object = UnityEngine.Object; @@ -126,8 +131,17 @@ public static int GetBoneIndex(this SkinnedMeshRenderer skinnedMeshRenderer, str /// public static void ApplyOutlineShader(this Renderer renderer) { - var shader = Resources.FindObjectsOfTypeAll().First(shader => shader.name == DefaultShader); - renderer.material.shader = shader; + var shader = Resources.FindObjectsOfTypeAll().FirstOrDefault(shader => shader.name == DefaultShader); + if (shader == null) + { + var dummyDisplay = Game.instance.model.GetTowerWithName(TowerType.DartMonkey).display; + Game.instance.GetDisplayFactory().FindAndSetupPrototypeAsync(dummyDisplay, DisplayCategory.Default, + new Action(udn => renderer.material.shader = udn.GetRenderers().First().material.shader)); + } + else + { + renderer.material.shader = shader; + } renderer.gameObject.layer = LayerMask.NameToLayer("Towers"); } } \ No newline at end of file diff --git a/BloonsTD6 Mod Helper/LATEST.md b/BloonsTD6 Mod Helper/LATEST.md index 73e02ea70..c52b90daf 100644 --- a/BloonsTD6 Mod Helper/LATEST.md +++ b/BloonsTD6 Mod Helper/LATEST.md @@ -1,3 +1,2 @@ -- An error indicator will now show on the main menu Mods Button if any mods have load errors -- Added a new load error for not being on MelonLoader 0.6.1 -- Fixed unneeded errors on Epic about Il2CppFacepunch.Steamworks \ No newline at end of file +- Re-fixed the ApplyOutlineShader method to work even if no other displays caused the Shader to already be loaded +- The space bar can now be used to skip the Title Screen animation and press the Start button \ No newline at end of file diff --git a/BloonsTD6 Mod Helper/MelonMain.cs b/BloonsTD6 Mod Helper/MelonMain.cs index 8e1fe76ac..a33518b48 100644 --- a/BloonsTD6 Mod Helper/MelonMain.cs +++ b/BloonsTD6 Mod Helper/MelonMain.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using System.Reflection; using System.Threading.Tasks; using BTD_Mod_Helper; using BTD_Mod_Helper.Api; diff --git a/BloonsTD6 Mod Helper/btd6.targets b/BloonsTD6 Mod Helper/btd6.targets index 34c59c7bf..091448db3 100644 --- a/BloonsTD6 Mod Helper/btd6.targets +++ b/BloonsTD6 Mod Helper/btd6.targets @@ -1,7 +1,7 @@ - C:\Program Files (x86)\Steam\steamapps\common\BloonsTD6 + C:\Program Files (x86)\Steam\steamapps\common\BloonsTD6 $(BloonsTD6)\MelonLoader\Il2CppAssemblies $(BloonsTD6)\MelonLoader\Managed Mods