RUMBLE does not support other mod managers. If you want to use a manager, you must use the RUMBLE Mod Manager, a manager specifically designed for this game.
Decompiled source of SeasonalLeaves v4.1.1
Mods/SeasonalLeaves.dll
Decompiled a year agousing System; using System.Collections; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppSystem.Collections.Generic; using MelonLoader; using RumbleModUI; using SeasonalLeaves; using UnityEngine; using UnityEngine.VFX; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(SeasonalLeavesClass), "SeasonalLeaves", "4.1.1", "Baumritter", null)] [assembly: MelonGame("Buckethead Entertainment", "RUMBLE")] [assembly: VerifyLoaderVersion(0, 6, 2)] [assembly: MelonColor(200, 0, 200, 0)] [assembly: MelonAuthorColor(200, 0, 200, 0)] [assembly: AssemblyTitle("SeasonalLeaves")] [assembly: AssemblyDescription("Changes the color of all leaves based on season.")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SeasonalLeaves")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("80d96e94-eda2-46b0-9b8b-23557ea773b5")] [assembly: AssemblyFileVersion("4.1.1")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("4.1.1.0")] namespace SeasonalLeaves; public static class BuildInfo { public const string ModName = "SeasonalLeaves"; public const string ModVersion = "4.1.1"; public const string Description = "Changes the color of all leaves based on season."; public const string Author = "Baumritter"; public const string Company = ""; } public class SeasonalLeavesClass : MelonMod { private const double Delay = 6.0; private const int LCT1 = 1365; private const int LCB1 = 1366; private const int LCT2 = 1359; private const int LCB2 = 1361; private const int GC1 = 1340; private const int GC2 = 1342; private const int GC3 = 1347; private const int GC4 = 1349; private const int VFXGradientID = 977; private const string SettingsFolder = "Settings"; private Color color_cust_cherry = new Color(0.8f, 0.52f, 0.57f, 1f); private Color color_sumr_lshgrn = new Color(0f, 0.15f, 0f, 1f); private Color color_sumr_drkgrn = new Color(0.05f, 0.04f, 0f, 1f); private Color color_fall_drkred = new Color(0.19f, 0.06f, 0f, 1f); private Color color_fall_orange = new Color(0.25f, 0.1f, 0f, 1f); private Color color_fall_yellow = new Color(0.25f, 0.16f, 0f, 1f); private Color color_wntr_lghblu = new Color(0.5f, 0.5f, 0.8f, 1f); private readonly bool debug = false; private string currentscene; private string[] ObjectStrings = new string[15] { "--------------SCENE--------------/Gym_Production/Main static group/Foliage/Root_leaves", "--------------SCENE--------------/Gym_Production/Main static group/Foliage/Root_leaves_001", "--------------SCENE--------------/Gym_Production/Main static group/Foliage/Root_leaves_002", "--------------SCENE--------------/Gym_Production/Main static group/Foliage/Root_leaves_003", "--------------SCENE--------------/Gym_Production/Main static group/Gymarena/Leave_sphere__23_", "--------------SCENE--------------/Gym_Production/Main static group/Gymarena/Leave_sphere__24_", "--------------SCENE--------------/Grass", "________________SCENE_________________/Park/Main static group/Leaves/Leave_sphere_park", "________________SCENE_________________/Park/Main static group/Leaves/Leave_sphere_park_001", "________________SCENE_________________/Park/Main static group/Leaves/Leave_sphere_park_002", "________________SCENE_________________/Park/Main static group/Leaves/Leave_sphere_park_003", "Lighting and effects/Visual Effects/Falling Leaf VFXs", "Map0_production/Main static group/leave", "Map1_production/Main static group/Leaves_Map2", "Lighting & Effects/Visual Effects/Falling Leaf VFXs" }; private List<Material> Mat_Trees = new List<Material>(); private List<Material> Mat_Grass = new List<Material>(); private GameObject GO_VFX; private VisualEffect VFX_VFX; private Mod Mod = new Mod(); private Delay LoadDelay = new Delay { DelayName = "SeasonalLeavesLoadDelay" }; public override void OnLateInitializeMelon() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) ((MelonBase)this).OnLateInitializeMelon(); UI.instance.UI_Initialized += OnUIInit; LoadHandler.PlayerLoaded += WaitAfterInit; Shading.shades[0] = Color.HSVToRGB(0f, 1f, 1f); Shading.shades[1] = Color.HSVToRGB(0f, 0.66f, 0.66f); Shading.shades[2] = Color.HSVToRGB(0f, 0.33f, 0.33f); } private void OnUIInit() { //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Expected O, but got Unknown Mod.ModName = "SeasonalLeaves"; Mod.ModVersion = "4.1.1"; Mod.SetFolder("SeasonalLeaves"); Mod.SetSubFolder("Settings"); Mod.AddDescription("Description", "", "Changes the color of all leaves based on season.", new Tags { IsSummary = true }); Mod.AddToList("Grass", false, 0, "Enables continuous Shading of Grass. This is horrendous on performance.", new Tags()); Mod.AddToList("RGB", false, 1, "Turns the RGB theme on/off.", new Tags()); Mod.AddToList("Cursed", false, 1, "Turns the Cursed theme on/off." + Environment.NewLine + "Epilepsy Warning!", new Tags()); Mod.AddToList("Season", true, 1, "Turns the Seasonal theme on/off.", new Tags()); Mod.AddToList("Cherry", false, 1, "Turns the Cherry theme on/off.", new Tags()); Mod.SetLinkGroup(1, "Themes"); Mod.GetFromFile(); Mod.ModSaved += OnSaveOrInit; UI.instance.AddMod(Mod); MelonLoggerExtension.Log("Added Mod."); } private void WaitAfterInit() { LoadDelay.Start(6.0, false, (Action)delegate { OnSaveOrInit(); }); } private void OnSaveOrInit() { //IL_01a3: Unknown result type (might be due to invalid IL or missing references) if (Shading.Coroutine != null) { MelonCoroutines.Stop(Shading.Coroutine); } ApplySettings(); switch (currentscene) { case "Gym": if (!(bool)Mod.Settings.Find((ModSetting x) => x.Name == "Grass").Value & Shading.Continuous) { GetObjects(ShrinkArray(ObjectStrings, 0, 5), ObjectStrings[11]); } else { GetObjects(ShrinkArray(ObjectStrings, 0, 5), ObjectStrings[11], ObjectStrings[6]); } break; case "Park": GetObjects(ShrinkArray(ObjectStrings, 7, 10), ObjectStrings[11]); break; case "Map0": GetObjects(ShrinkArray(ObjectStrings, 12, 12), ObjectStrings[14]); break; case "Map1": GetObjects(ShrinkArray(ObjectStrings, 13, 13), ObjectStrings[14]); break; } if (Shading.Continuous) { Shading.Coroutine = MelonCoroutines.Start(ContinuousShading()); return; } Shading.ApplyShadingbyColor(Shading.Static_Color); ChangeProperties(); } private IEnumerator ContinuousShading() { WaitForFixedUpdate waitForFixedUpdate = new WaitForFixedUpdate(); int FrameCounter = Shading.FrameDelay; while (true) { if (FrameCounter >= Shading.FrameDelay) { Shading.ContinuousShading(); ChangeProperties(); FrameCounter = 0; } FrameCounter++; yield return waitForFixedUpdate; } } private void ApplySettings() { //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) string text = ""; foreach (ModSetting setting in Mod.Settings) { if (setting.LinkGroup == 1 && (bool)setting.Value) { text = setting.Name; break; } } switch (text) { case "RGB": Shading.Continuous = true; Shading.ContinuousType = text; Shading.FrameDelay = 10; break; case "Cursed": Shading.Continuous = true; Shading.ContinuousType = text; Shading.FrameDelay = 5; break; case "Cherry": Shading.Continuous = false; Shading.Static_Color = color_cust_cherry; break; case "Season": Shading.Continuous = false; switch (DateTime.Now.Month) { case 1: case 2: case 3: case 12: Shading.Static_Color = color_wntr_lghblu; break; case 4: if (DateTime.Now.Day == 1) { Shading.Static_Color = new Color(1f, 0f, 1f, 1f); } break; case 5: case 6: Shading.Static_Color = color_sumr_lshgrn; break; case 7: case 8: Shading.Static_Color = color_sumr_drkgrn; break; case 9: Shading.Static_Color = color_fall_yellow; break; case 10: Shading.Static_Color = color_fall_orange; break; case 11: Shading.Static_Color = color_fall_drkred; break; } break; default: Application.Quit(); break; } } private void GetObjects(string[] Trees, string VFX = "", string Grass = "") { Mat_Trees.Clear(); Mat_Grass.Clear(); GO_VFX = null; VFX_VFX = null; foreach (string text in Trees) { Mat_Trees.Add(((Renderer)GameObject.Find(text).GetComponent<MeshRenderer>()).material); } if (debug) { MelonLogger.Msg("Mat_Tree get"); } if (VFX != "") { GO_VFX = GameObject.Find(VFX); VFX_VFX = ((Component)GO_VFX.transform.GetChild(0)).gameObject.GetComponent<VisualEffect>(); Shading.gradient = VFX_VFX.GetGradient(977); } if (debug) { MelonLogger.Msg("GO_VFX get"); } if (Grass != "") { for (int j = 0; j < GameObject.Find(Grass).transform.GetChildCount(); j++) { Mat_Grass.Add(((Renderer)((Component)GameObject.Find(Grass).transform.GetChild(j)).GetComponent<MeshRenderer>()).material); Mat_Grass.Add(((Renderer)((Component)GameObject.Find(Grass).transform.GetChild(j).GetChild(0)).GetComponent<MeshRenderer>()).material); } if (debug) { MelonLogger.Msg("Mat_Grass get"); } } } private void ChangeProperties() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) Enumerator<Material> enumerator = Mat_Trees.GetEnumerator(); while (enumerator.MoveNext()) { Material current = enumerator.Current; current.SetColor(1365, Shading.shades[2]); current.SetColor(1366, Shading.shades[0]); current.SetColor(1359, Shading.shades[2]); current.SetColor(1361, Shading.shades[0]); } if (debug) { MelonLogger.Msg("Applied Shading - Tree"); } if ((Object)(object)GO_VFX != (Object)null) { Shading.keys[0].color = Shading.shades[1]; Shading.keys[1].color = Shading.shades[1]; Shading.gradient.colorKeys = Il2CppStructArray<GradientColorKey>.op_Implicit(Shading.keys); for (int i = 0; i < GO_VFX.transform.GetChildCount(); i++) { VFX_VFX = ((Component)GO_VFX.transform.GetChild(i)).gameObject.GetComponent<VisualEffect>(); VFX_VFX.SetGradient(977, Shading.gradient); } if (debug) { MelonLogger.Msg("Applied Shading - VFX"); } } if (Mat_Grass.Count > 0) { Enumerator<Material> enumerator2 = Mat_Grass.GetEnumerator(); while (enumerator2.MoveNext()) { Material current2 = enumerator2.Current; current2.SetColor(1340, Shading.shades[1]); current2.SetColor(1342, Shading.shades[0]); current2.SetColor(1347, Shading.shades[1]); current2.SetColor(1349, Shading.shades[0]); } } } private string[] ShrinkArray(string[] Input, int From, int To) { string[] array = new string[To - From + 1]; for (int i = From; i <= To; i++) { array[i - From] = Input[i]; } return array; } public override void OnSceneWasUnloaded(int buildIndex, string sceneName) { ((MelonMod)this).OnSceneWasUnloaded(buildIndex, sceneName); if (Shading.Coroutine != null) { MelonCoroutines.Stop(Shading.Coroutine); } } public override void OnSceneWasLoaded(int buildIndex, string sceneName) { ((MelonMod)this).OnSceneWasLoaded(buildIndex, sceneName); currentscene = sceneName; } } internal static class Shading { internal static int LoopVar; internal static bool Continuous; internal static int FrameDelay; internal static string ContinuousType; internal static object Coroutine; internal static Random Random = new Random(); internal static Color Static_Color = new Color(1f, 1f, 1f, 1f); internal static Gradient gradient; internal static GradientColorKey[] keys = (GradientColorKey[])(object)new GradientColorKey[2]; internal static Color[] shades = (Color[])(object)new Color[3]; internal static void ApplyShadingbyColor(Color Base) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) float num = default(float); float num2 = default(float); float num3 = default(float); Color.RGBToHSV(Base, ref num, ref num2, ref num3); if (num2 > 0.9f) { num2 = 0.9f; } if (num2 < 0.1f) { num2 = 0.1f; } if (num3 > 0.9f) { num3 = 0.9f; } if (num3 < 0.1f) { num3 = 0.1f; } shades[0] = Color.HSVToRGB(num, num2 - 0.1f, num3 - 0.1f); shades[1] = Color.HSVToRGB(num, num2, num3); shades[2] = Color.HSVToRGB(num, num2 + 0.1f, num3 + 0.1f); } internal static void ContinuousShading() { string continuousType = ContinuousType; string text = continuousType; if (!(text == "RGB")) { if (text == "Cursed") { ApplyShadingbyHue(Random.Next(0, 360)); } return; } if (LoopVar >= 360) { LoopVar = 0; } ApplyShadingbyHue(LoopVar); LoopVar++; } private static void ApplyShadingbyHue(float Hue) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) shades[0] = Color.HSVToRGB(Hue / 360f, 1f, 1f); shades[1] = Color.HSVToRGB(Hue / 360f, 0.66f, 0.66f); shades[2] = Color.HSVToRGB(Hue / 360f, 0.33f, 0.33f); } }