27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
using System.Reflection;
|
|
using NitroxClient.MonoBehaviours.Gui.Input;
|
|
using NitroxClient.MonoBehaviours.Gui.Input.KeyBindings;
|
|
using NitroxModel.Helper;
|
|
|
|
namespace NitroxPatcher.Patches.Persistent;
|
|
|
|
public partial class GameInput_SetupDefaultKeyboardBindings_Patch : NitroxPatch, IPersistentPatch
|
|
{
|
|
private static readonly MethodInfo TARGET_METHOD = Reflect.Method(() => GameInput.SetupDefaultKeyboardBindings());
|
|
|
|
public static void Postfix()
|
|
{
|
|
KeyBindingManager keyBindingManager = new();
|
|
foreach (KeyBinding keyBinding in keyBindingManager.KeyboardKeyBindings)
|
|
{
|
|
GameInput.SetBindingInternal(keyBinding.Device, keyBinding.Button, GameInput.BindingSet.Primary, keyBinding.PrimaryKey);
|
|
|
|
// if the options.bin gets deleted (when loading SP) and the client.cfg has secondary keybinds, repopulate them.
|
|
if (!string.IsNullOrEmpty(keyBinding.SecondaryKey))
|
|
{
|
|
GameInput.SetBindingInternal(keyBinding.Device, keyBinding.Button, GameInput.BindingSet.Secondary, keyBinding.SecondaryKey);
|
|
}
|
|
}
|
|
}
|
|
}
|