diff --git a/Plugin.cs b/Plugin.cs new file mode 100644 index 0000000..2c957f6 --- /dev/null +++ b/Plugin.cs @@ -0,0 +1,59 @@ +using BepInEx; +using BepInEx.Configuration; +using BepInEx.Logging; +using BepInEx.Unity.IL2CPP; +using HarmonyLib; +using RecRoom.Systems; +using System; + +namespace Radium.InputManagerPatch +{ + /// + /// Patch for InputManager in Radium's 2021 build to set the input type to whatever you desire! + /// + [BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)] + public class Plugin : BasePlugin + { + internal static new ManualLogSource Log; + + internal static readonly Harmony _harmony = new(MyPluginInfo.PLUGIN_GUID); + + /// + /// The input type we wish to set. If no value is provided, it defaults to SteamVR_Vive. + /// + internal static ConfigEntry VRInputDeviceType; + + public override void Load() + { + Log = base.Log; + + // The valid input types to print in our config + var inputTypes = string.Join(", ", Enum.GetNames(typeof(InputManager.LNEHPBFDEGG))); + + VRInputDeviceType = Config.Bind( + section: "Input", + key: "VRInputDeviceType", + defaultValue: InputManager.LNEHPBFDEGG.SteamVR_Vive, + description: $"Fixed input mode. Valid options are: {inputTypes}"); + + Log.LogInfo($"{MyPluginInfo.PLUGIN_GUID} loaded!"); +#if DEBUG + Log.LogInfo(VRInputDeviceType.Value); +#endif + _harmony.PatchAll(); + } + + /// + /// Sets GetVRInputMode (NACIMCNEHMP) of InputManager to whatever we desire! + /// + [HarmonyPatch(typeof(InputManager), "NACIMCNEHMP")] + public class InputManagerPatch() + { + private static bool Prefix(ref InputManager.LNEHPBFDEGG __result) + { + __result = Plugin.VRInputDeviceType.Value; + return false; + } + } + } +} \ No newline at end of file diff --git a/Radium.InputManagerPatch.csproj b/Radium.InputManagerPatch.csproj new file mode 100644 index 0000000..db4bc3c --- /dev/null +++ b/Radium.InputManagerPatch.csproj @@ -0,0 +1,28 @@ + + + + net6.0 + Radium.InputManagerPatch + Awesome patch for InputManager in Radium's 2021 build to set the input type to whatever you desire! + 1.0.0 + true + latest + + https://api.nuget.org/v3/index.json; + https://nuget.bepinex.dev/v3/index.json; + https://nuget.samboy.dev/v3/index.json + + Radium.InputManagerPatch + + + + + + + + + + AssemblyReferences\Assembly-CSharp.dll + + + \ No newline at end of file