Latest versions of MelonLoader are known to have issues with some games. Use version 0.5.4 until the issue has been fixed!
Decompiled source of IndexFinger v3.0.2
BONELAB/IndexFingers.dll
Decompiled 2 months agousing System; using System.Diagnostics; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BoneLib; using BoneLib.BoneMenu; using HarmonyLib; using Il2CppSLZ.Marrow; using Il2CppSLZ.Marrow.Interaction; using IndexFingers; using MelonLoader; using MelonLoader.Preferences; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("IndexFingers")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany(null)] [assembly: AssemblyProduct("IndexFingers")] [assembly: AssemblyCopyright("Created by EvroDev")] [assembly: AssemblyTrademark(null)] [assembly: ComVisible(false)] [assembly: AssemblyFileVersion("2.2.0")] [assembly: NeutralResourcesLanguage("en")] [assembly: MelonInfo(typeof(global::IndexFingers.IndexFingers), "IndexFingers", "2.2.0", "EvroDev", null)] [assembly: MelonGame(null, null)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("2.2.0.0")] namespace IndexFingers; public static class BuildInfo { public const string Name = "IndexFingers"; public const string Author = "EvroDev"; public const string Company = null; public const string Version = "2.2.0"; public const string DownloadLink = null; } public class IndexFingers : MelonMod { [HarmonyPatch(typeof(OpenController), "OnUpdate")] public static class ControllerPatch { public static Vector2 previousValues; public static Vector2 ringsMax = Vector2.one; public static Vector2 pinkysMax = Vector2.one; public static Vector2 middleFingerUsage; public static Vector2 buttonPressLengths; public static void Postfix(OpenController __instance) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) Handedness handedness = ((BaseController)__instance).handedness; if (((BaseController)__instance)._bButtonDown && !IsHoldingObject(handedness)) { ToggleMiddle(handedness); } else if (IsHoldingObject(handedness) && IsMiddleToggled(handedness)) { DisableMiddle(handedness); } if (((BaseController)__instance)._bButton) { buttonPressLengths.SetFromHandedness(handedness, buttonPressLengths.FromHandedness(handedness) + Time.deltaTime); if (buttonPressLengths.FromHandedness(handedness) >= 1f) { DisableMiddle(handedness); } } else if (buttonPressLengths.FromHandedness(handedness) != 0f) { buttonPressLengths.SetFromHandedness(handedness, 0f); } if (HandsWereOpen(handedness) && ((BaseController)__instance)._processedMiddle == 1f) { RandomizeFingerLimits(handedness); } previousValues.SetFromHandedness(handedness, ((BaseController)__instance)._processedMiddle); float num = ringsMax.FromHandedness(handedness); float num2 = pinkysMax.FromHandedness(handedness); float num3 = ((middleFingerUsage.FromHandedness(handedness) != 1f) ? 1f : (middleEnabled ? defaultMinimum : 1f)); ((BaseController)__instance)._processedMiddle = (movingFingersEnabled ? Mathf.Clamp(Mathf.Sqrt(((BaseController)__instance)._processedMiddle), defaultMinimum, num3) : Mathf.Clamp(((BaseController)__instance)._processedMiddle, defaultMinimum, num3)); ((BaseController)__instance)._processedIndex = Mathf.Clamp(((BaseController)__instance)._processedIndex, defaultMinimum, 1f); ((BaseController)__instance)._processedRing = Mathf.Clamp(((BaseController)__instance)._processedRing, defaultMinimum, num); ((BaseController)__instance)._processedPinky = (movingFingersEnabled ? Mathf.Clamp(Mathf.Pow(((BaseController)__instance)._processedPinky, 2f), defaultMinimum, num2) : Mathf.Clamp(((BaseController)__instance)._processedPinky, defaultMinimum, num2)); } public static void EnableMiddle(Handedness handedness) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) middleFingerUsage.SetFromHandedness(handedness, 1f); } public static void DisableMiddle(Handedness handedness) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) middleFingerUsage.SetFromHandedness(handedness, 0f); } public static void ToggleMiddle(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) if (IsMiddleToggled(handedness)) { DisableMiddle(handedness); } else { EnableMiddle(handedness); } } public static void RandomizeFingerLimits(Handedness handedness) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) if (!closedHandFingerEnabled) { ResetFingerLimits(handedness); return; } ringsMax.SetFromHandedness(handedness, Random.Range(0.9f, 1f)); pinkysMax.SetFromHandedness(handedness, Random.Range(0.8f, 1f)); } public static void ResetFingerLimits(Handedness handedness) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) ringsMax.SetFromHandedness(handedness, 1f); pinkysMax.SetFromHandedness(handedness, 1f); } public static bool HandsWereOpen(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return previousValues.FromHandedness(handedness) != 1f; } public static bool IsMiddleToggled(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return middleFingerUsage.FromHandedness(handedness) == 1f; } public static bool IsHoldingObject(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 if ((int)handedness == 1) { return (Object)(object)Player.GetObjectInHand(Player.LeftHand) != (Object)null; } return (Object)(object)Player.GetObjectInHand(Player.RightHand) != (Object)null; } } public static bool middleEnabled = true; public static bool closedHandFingerEnabled = true; public static bool movingFingersEnabled = true; public static float defaultMinimum = 0.1f; public override void OnInitializeMelon() { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) MelonPreferences.CreateCategory("IndexFingers"); middleEnabled = MelonPreferences.CreateEntry<bool>("IndexFingers", "MidToggle", true, (string)null, (string)null, false, false, (ValueValidator)null).Value; movingFingersEnabled = MelonPreferences.CreateEntry<bool>("IndexFingers", "MovingOffset", true, (string)null, (string)null, false, false, (ValueValidator)null).Value; closedHandFingerEnabled = MelonPreferences.CreateEntry<bool>("IndexFingers", "GrabbedOffset", true, (string)null, (string)null, false, false, (ValueValidator)null).Value; defaultMinimum = MelonPreferences.CreateEntry<float>("IndexFingers", "DefaultCurl", 0.1f, (string)null, (string)null, false, false, (ValueValidator)null).Value; Page val = Page.Root.CreatePage("IndexFingers", Color.white, 0, true); val.CreateBool("Middle Finger Toggling", Color.white, MelonPreferences.GetEntryValue<bool>("IndexFingers", "MidToggle"), (Action<bool>)delegate(bool b) { middleEnabled = b; }); val.CreateBool("Moving Finger Offset", Color.white, MelonPreferences.GetEntryValue<bool>("IndexFingers", "MovingOffset"), (Action<bool>)delegate(bool b) { movingFingersEnabled = b; }); val.CreateBool("Grabbed Finger Offset", Color.white, MelonPreferences.GetEntryValue<bool>("IndexFingers", "GrabbedOffset"), (Action<bool>)delegate(bool b) { closedHandFingerEnabled = b; }); val.CreateFloat("Default Curl Amount", Color.white, MelonPreferences.GetEntryValue<float>("IndexFingers", "DefaultCurl"), 0.01f, 0f, 1f, (Action<float>)delegate(float f) { defaultMinimum = f; }); } public override void OnApplicationQuit() { MelonPreferences.SetEntryValue<bool>("IndexFingers", "MidToggle", middleEnabled); MelonPreferences.SetEntryValue<bool>("IndexFingers", "MovingOffset", movingFingersEnabled); MelonPreferences.SetEntryValue<bool>("IndexFingers", "GrabbedOffset", closedHandFingerEnabled); MelonPreferences.SetEntryValue<float>("IndexFingers", "DefaultCurl", defaultMinimum); } } public static class StupidExtensionsForVeryBreifSimplificationKinda { public static float FromHandedness(this Vector2 vector, Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) if ((int)handedness == 1) { return vector.x; } return vector.y; } public static void SetFromHandedness(this ref Vector2 vector, Handedness handedness, float value) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 if ((int)handedness == 1) { vector.x = value; } else { vector.y = value; } } }
BONEWORKS/IndexFingersBW.dll
Decompiled 2 months agousing System; using System.Diagnostics; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using HarmonyLib; using IndexFingersBW; using MelonLoader; using MelonLoader.Preferences; using ModThatIsNotMod; using ModThatIsNotMod.BoneMenu; using StressLevelZero; using StressLevelZero.Rig; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("IndexFingersBW")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany(null)] [assembly: AssemblyProduct("IndexFingersBW")] [assembly: AssemblyCopyright("Created by ")] [assembly: AssemblyTrademark(null)] [assembly: ComVisible(false)] [assembly: AssemblyFileVersion("1.0.0")] [assembly: NeutralResourcesLanguage("en")] [assembly: MelonInfo(typeof(global::IndexFingersBW.IndexFingersBW), "IndexFingersBW", "1.0.0", null, null)] [assembly: MelonGame(null, null)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace IndexFingersBW; public static class BuildInfo { public const string Name = "IndexFingersBW"; public const string Author = null; public const string Company = null; public const string Version = "1.0.0"; public const string DownloadLink = null; } public class IndexFingersBW : MelonMod { [HarmonyPatch(typeof(Controller), "OnUpdate")] public static class ControllerPatch { public static Vector2 previousValues; public static Vector2 ringsMax = Vector2.one; public static Vector2 pinkysMax = Vector2.one; public static Vector2 middleFingerUsage; public static Vector2 buttonPressLengths; public static void Postfix(Controller __instance) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) Handedness handedness = ((BaseController)__instance).handedness; if (__instance._bButtonDown && !IsHoldingObject(handedness)) { ToggleMiddle(handedness); } else if (IsHoldingObject(handedness) && IsMiddleToggled(handedness)) { DisableMiddle(handedness); } if (__instance._bButton) { buttonPressLengths.SetFromHandedness(handedness, buttonPressLengths.FromHandedness(handedness) + Time.deltaTime); if (buttonPressLengths.FromHandedness(handedness) >= 1f) { DisableMiddle(handedness); } } else if (buttonPressLengths.FromHandedness(handedness) != 0f) { buttonPressLengths.SetFromHandedness(handedness, 0f); } if (HandsWereOpen(handedness) && __instance._processedMiddle == 1f) { RandomizeFingerLimits(handedness); } previousValues.SetFromHandedness(handedness, __instance._processedMiddle); float num = ringsMax.FromHandedness(handedness); float num2 = pinkysMax.FromHandedness(handedness); float num3 = ((middleFingerUsage.FromHandedness(handedness) != 1f) ? 1f : (middleEnabled ? defaultMinimum : 1f)); __instance._processedMiddle = (movingFingersEnabled ? Mathf.Clamp(Mathf.Sqrt(__instance._processedMiddle), defaultMinimum, num3) : Mathf.Clamp(__instance._processedMiddle, defaultMinimum, num3)); __instance._processedIndex = Mathf.Clamp(__instance._processedIndex, defaultMinimum, 1f); __instance._processedRing = Mathf.Clamp(__instance._processedRing, defaultMinimum, num); __instance._processedPinky = (movingFingersEnabled ? Mathf.Clamp(Mathf.Pow(__instance._processedPinky, 2f), defaultMinimum, num2) : Mathf.Clamp(__instance._processedPinky, defaultMinimum, num2)); } public static void EnableMiddle(Handedness handedness) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) middleFingerUsage.SetFromHandedness(handedness, 1f); } public static void DisableMiddle(Handedness handedness) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) middleFingerUsage.SetFromHandedness(handedness, 0f); } public static void ToggleMiddle(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) if (IsMiddleToggled(handedness)) { DisableMiddle(handedness); } else { EnableMiddle(handedness); } } public static void RandomizeFingerLimits(Handedness handedness) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) if (!closedHandFingerEnabled) { ResetFingerLimits(handedness); return; } ringsMax.SetFromHandedness(handedness, Random.Range(0.9f, 1f)); pinkysMax.SetFromHandedness(handedness, Random.Range(0.8f, 1f)); } public static void ResetFingerLimits(Handedness handedness) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) ringsMax.SetFromHandedness(handedness, 1f); pinkysMax.SetFromHandedness(handedness, 1f); } public static bool HandsWereOpen(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return previousValues.FromHandedness(handedness) != 1f; } public static bool IsMiddleToggled(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return middleFingerUsage.FromHandedness(handedness) == 1f; } public static bool IsHoldingObject(Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 if ((int)handedness == 1) { return (Object)(object)Player.GetObjectInHand(Player.leftHand) != (Object)null; } return (Object)(object)Player.GetObjectInHand(Player.rightHand) != (Object)null; } } public static bool middleEnabled = true; public static bool closedHandFingerEnabled = true; public static bool movingFingersEnabled = true; public static float defaultMinimum = 0.1f; public override void OnInitializeMelon() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) MelonPreferences.CreateCategory("IndexFingersBW"); MelonPreferences.CreateEntry<bool>("IndexFingersBW", "MidToggle", true, (string)null, (string)null, false, false, (ValueValidator)null); MelonPreferences.CreateEntry<bool>("IndexFingersBW", "MovingOffset", true, (string)null, (string)null, false, false, (ValueValidator)null); MelonPreferences.CreateEntry<bool>("IndexFingersBW", "GrabbedOffset", true, (string)null, (string)null, false, false, (ValueValidator)null); MelonPreferences.CreateEntry<float>("IndexFingersBW", "DefaultCurl", 0.1f, (string)null, (string)null, false, false, (ValueValidator)null); MenuCategory val = MenuManager.CreateCategory("IndexFingers", Color.white); val.CreateBoolElement("Middle Finger Toggling", Color.white, MelonPreferences.GetEntryValue<bool>("IndexFingersBW", "MidToggle"), (Action<bool>)delegate(bool b) { middleEnabled = b; }); val.CreateBoolElement("Moving Finger Offset", Color.white, MelonPreferences.GetEntryValue<bool>("IndexFingersBW", "MovingOffset"), (Action<bool>)delegate(bool b) { movingFingersEnabled = b; }); val.CreateBoolElement("Grabbed Finger Offset", Color.white, MelonPreferences.GetEntryValue<bool>("IndexFingersBW", "GrabbedOffset"), (Action<bool>)delegate(bool b) { closedHandFingerEnabled = b; }); val.CreateFloatElement("Default Curl Amount", Color.white, MelonPreferences.GetEntryValue<float>("IndexFingersBW", "DefaultCurl"), (Action<float>)delegate(float f) { defaultMinimum = f; }, 0.01f, 0f, 1f, false); } public override void OnApplicationQuit() { MelonPreferences.SetEntryValue<bool>("IndexFingersBW", "MidToggle", middleEnabled); MelonPreferences.SetEntryValue<bool>("IndexFingersBW", "MovingOffset", movingFingersEnabled); MelonPreferences.SetEntryValue<bool>("IndexFingersBW", "GrabbedOffset", closedHandFingerEnabled); MelonPreferences.SetEntryValue<float>("IndexFingersBW", "DefaultCurl", defaultMinimum); } } public static class StupidExtensionsForVeryBreifSimplificationKinda { public static float FromHandedness(this Vector2 vector, Handedness handedness) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) if ((int)handedness == 1) { return vector.x; } return vector.y; } public static void SetFromHandedness(this ref Vector2 vector, Handedness handedness, float value) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 if ((int)handedness == 1) { vector.x = value; } else { vector.y = value; } } }