From 69cb3b7804f80e4a1e935bc5a450764a2626bae7 Mon Sep 17 00:00:00 2001 From: NotAKidoS <37721153+NotAKidOnSteam@users.noreply.github.com> Date: Tue, 19 Sep 2023 22:52:09 -0500 Subject: [PATCH] [FuckMLA] Initial testing New mod that unlocks the cursor by default when launching in VR. --- FuckMLA/FuckMLA.csproj | 2 ++ FuckMLA/HarmonyPatches.cs | 39 ++++++++++++++++++++++++++++++ FuckMLA/Main.cs | 26 ++++++++++++++++++++ FuckMLA/Properties/AssemblyInfo.cs | 32 ++++++++++++++++++++++++ FuckMLA/format.json | 23 ++++++++++++++++++ NAK_CVR_Mods.sln | 24 +++++++++++++----- 6 files changed, 140 insertions(+), 6 deletions(-) create mode 100644 FuckMLA/FuckMLA.csproj create mode 100644 FuckMLA/HarmonyPatches.cs create mode 100644 FuckMLA/Main.cs create mode 100644 FuckMLA/Properties/AssemblyInfo.cs create mode 100644 FuckMLA/format.json diff --git a/FuckMLA/FuckMLA.csproj b/FuckMLA/FuckMLA.csproj new file mode 100644 index 0000000..66a50a8 --- /dev/null +++ b/FuckMLA/FuckMLA.csproj @@ -0,0 +1,2 @@ + + diff --git a/FuckMLA/HarmonyPatches.cs b/FuckMLA/HarmonyPatches.cs new file mode 100644 index 0000000..711d439 --- /dev/null +++ b/FuckMLA/HarmonyPatches.cs @@ -0,0 +1,39 @@ +using ABI_RC.Core; +using ABI_RC.Core.Savior; +using ABI_RC.Systems.InputManagement; +using HarmonyLib; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace NAK.FuckMLA.HarmonyPatches; + +internal class RootLogicPatches +{ + [HarmonyPostfix] + [HarmonyPatch(typeof(RootLogic), nameof(RootLogic.Awake))] + private static void Postfix_RootLogic_Awake(ref RootLogic __instance) + { + __instance.ToggleMouse(MetaPort.Instance.isUsingVr); + } +} + +internal class CVRInputModulePatches +{ + [HarmonyPrefix] + [HarmonyPatch(typeof(CVRInputModule), nameof(CVRInputModule.Update_Look), typeof(Vector2))] + private static bool Prefix_CVRInputModule_Update_Look() + { + return Cursor.lockState == CursorLockMode.Locked; + } +} + +internal class MOUSELOCKALPHAPatches +{ + [HarmonyPrefix] + [HarmonyPatch(typeof(MOUSELOCKALPHA), nameof(MOUSELOCKALPHA.Start))] + private static bool Prefix_MOUSELOCKALPHA_Start(ref MOUSELOCKALPHA __instance) + { + Object.DestroyImmediate(__instance); + return false; + } +} \ No newline at end of file diff --git a/FuckMLA/Main.cs b/FuckMLA/Main.cs new file mode 100644 index 0000000..bd81d86 --- /dev/null +++ b/FuckMLA/Main.cs @@ -0,0 +1,26 @@ +using MelonLoader; + +namespace NAK.FuckMLA; + +public class FuckMLA : MelonMod +{ + public override void OnInitializeMelon() + { + ApplyPatches(typeof(HarmonyPatches.RootLogicPatches)); + ApplyPatches(typeof(HarmonyPatches.CVRInputModulePatches)); + ApplyPatches(typeof(HarmonyPatches.MOUSELOCKALPHAPatches)); + } + + private void ApplyPatches(Type type) + { + try + { + HarmonyInstance.PatchAll(type); + } + catch (Exception e) + { + LoggerInstance.Msg($"Failed while patching {type.Name}!"); + LoggerInstance.Error(e); + } + } +} \ No newline at end of file diff --git a/FuckMLA/Properties/AssemblyInfo.cs b/FuckMLA/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..64e31ba --- /dev/null +++ b/FuckMLA/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using MelonLoader; +using NAK.FuckMLA.Properties; +using System.Reflection; + +[assembly: AssemblyVersion(AssemblyInfoParams.Version)] +[assembly: AssemblyFileVersion(AssemblyInfoParams.Version)] +[assembly: AssemblyInformationalVersion(AssemblyInfoParams.Version)] +[assembly: AssemblyTitle(nameof(NAK.FuckMLA))] +[assembly: AssemblyCompany(AssemblyInfoParams.Author)] +[assembly: AssemblyProduct(nameof(NAK.FuckMLA))] + +[assembly: MelonInfo( + typeof(NAK.FuckMLA.FuckMLA), + nameof(NAK.FuckMLA), + AssemblyInfoParams.Version, + AssemblyInfoParams.Author, + downloadLink: "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/FuckMLA" +)] + +[assembly: MelonGame("Alpha Blend Interactive", "ChilloutVR")] +[assembly: MelonPlatform(MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] +[assembly: MelonPlatformDomain(MelonPlatformDomainAttribute.CompatibleDomains.MONO)] +[assembly: MelonColor(255, 155, 89, 182)] +[assembly: MelonAuthorColor(255, 158, 21, 32)] +[assembly: HarmonyDontPatchAll] + +namespace NAK.FuckMLA.Properties; +internal static class AssemblyInfoParams +{ + public const string Version = "1.0.0"; + public const string Author = "NotAKidoS"; +} \ No newline at end of file diff --git a/FuckMLA/format.json b/FuckMLA/format.json new file mode 100644 index 0000000..15f3f72 --- /dev/null +++ b/FuckMLA/format.json @@ -0,0 +1,23 @@ +{ + "_id": -1, + "name": "EzCurls", + "modversion": "1.0.0", + "gameversion": "2022r170p1", + "loaderversion": "0.6.1", + "modtype": "Mod", + "author": "NotAKidoS", + "description": "A mod that should hopefully make finger curls more predictable.", + "searchtags": [ + "aas", + "sync", + "naked", + "buffer" + ], + "requirements": [ + "UIExpansionKit" + ], + "downloadlink": "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/download/r13/EzCurls.dll", + "sourcelink": "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/EzCurls/", + "changelog": "- Initial CVRMG release", + "embedcolor": "7d7d7d" +} \ No newline at end of file diff --git a/NAK_CVR_Mods.sln b/NAK_CVR_Mods.sln index 6a744ee..aa5273a 100644 --- a/NAK_CVR_Mods.sln +++ b/NAK_CVR_Mods.sln @@ -43,12 +43,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FOVAdjustment", "FOVAdjustm EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MuteSFX", "MuteSFX\MuteSFX.csproj", "{77D222FC-4AEC-4672-A87A-B860B4C39E17}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EzCurls", "EzCurls\EzCurls.csproj", "{7EF74A8D-0421-4B6D-809E-40F9C2DFC7F8}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AlternateIKSystem", "AlternateIKSystem\AlternateIKSystem.csproj", "{CAB05E13-B529-4CDA-A2B5-B62E122408F8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatBoxExtensions", "ChatBoxExtensions\ChatBoxExtensions.csproj", "{0E1DD746-33A1-4179-AE70-8FB83AC40ABC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EzCurls", "EzCurls\EzCurls.csproj", "{9D39E900-8F38-485B-8B67-9F75D8FF2C5E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EzGrab", "EzGrab\EzGrab.csproj", "{8CBF5378-A4AE-4594-9A13-0066E5D3FE81}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FuckMLA", "FuckMLA\FuckMLA.csproj", "{41A84C81-E9FD-471D-9A68-4823C9F67CD7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -135,10 +139,6 @@ Global {77D222FC-4AEC-4672-A87A-B860B4C39E17}.Debug|Any CPU.Build.0 = Debug|Any CPU {77D222FC-4AEC-4672-A87A-B860B4C39E17}.Release|Any CPU.ActiveCfg = Release|Any CPU {77D222FC-4AEC-4672-A87A-B860B4C39E17}.Release|Any CPU.Build.0 = Release|Any CPU - {7EF74A8D-0421-4B6D-809E-40F9C2DFC7F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7EF74A8D-0421-4B6D-809E-40F9C2DFC7F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7EF74A8D-0421-4B6D-809E-40F9C2DFC7F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7EF74A8D-0421-4B6D-809E-40F9C2DFC7F8}.Release|Any CPU.Build.0 = Release|Any CPU {CAB05E13-B529-4CDA-A2B5-B62E122408F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CAB05E13-B529-4CDA-A2B5-B62E122408F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {CAB05E13-B529-4CDA-A2B5-B62E122408F8}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -147,6 +147,18 @@ Global {0E1DD746-33A1-4179-AE70-8FB83AC40ABC}.Debug|Any CPU.Build.0 = Debug|Any CPU {0E1DD746-33A1-4179-AE70-8FB83AC40ABC}.Release|Any CPU.ActiveCfg = Release|Any CPU {0E1DD746-33A1-4179-AE70-8FB83AC40ABC}.Release|Any CPU.Build.0 = Release|Any CPU + {9D39E900-8F38-485B-8B67-9F75D8FF2C5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D39E900-8F38-485B-8B67-9F75D8FF2C5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D39E900-8F38-485B-8B67-9F75D8FF2C5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D39E900-8F38-485B-8B67-9F75D8FF2C5E}.Release|Any CPU.Build.0 = Release|Any CPU + {8CBF5378-A4AE-4594-9A13-0066E5D3FE81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CBF5378-A4AE-4594-9A13-0066E5D3FE81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CBF5378-A4AE-4594-9A13-0066E5D3FE81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CBF5378-A4AE-4594-9A13-0066E5D3FE81}.Release|Any CPU.Build.0 = Release|Any CPU + {41A84C81-E9FD-471D-9A68-4823C9F67CD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41A84C81-E9FD-471D-9A68-4823C9F67CD7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41A84C81-E9FD-471D-9A68-4823C9F67CD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41A84C81-E9FD-471D-9A68-4823C9F67CD7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE