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; VRInputDeviceType = Config.Bind( section: "Input", key: "VRInputDeviceType", defaultValue: InputManager.LNEHPBFDEGG.SteamVR_Vive, description: $"Fixed input mode. Set it to any of the acceptable values below"); Log.LogInfo($"{MyPluginInfo.PLUGIN_GUID} loaded!"); #if DEBUG Log.LogInfo($"We are set! {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; } } } }