From d237ef25d30e00e34f83bc6f9622c76ff0d42c6d Mon Sep 17 00:00:00 2001 From: Aze <36392269+AzeTheGreat@users.noreply.github.com> Date: Sat, 2 Jan 2021 14:57:00 -0700 Subject: [PATCH] 1.2 and Allow Tool compatibility Fixed: Allow Tool preventing setting custom hotkeys. Gizmos not displaying multi-keybindings. Only the first gizmo hotkey using the same final key would work. --- 1.2/Assemblies/Hotkeys.dll | Bin 0 -> 46592 bytes About/About.xml | 1 + .../Patch_CheckGizmoKeybindings.cs | 5 +- .../Patch_ApplyGizmoHotkeys.cs | 2 +- .../Command Hotkeys/Patch_AssignGizmoKey.cs | 108 ++++++++---------- Source/Hotkeys/Hotkeys.csproj | 3 +- .../Multi Keys/Trans_GizmoRenderKeyMods.cs | 2 +- 7 files changed, 55 insertions(+), 66 deletions(-) create mode 100644 1.2/Assemblies/Hotkeys.dll diff --git a/1.2/Assemblies/Hotkeys.dll b/1.2/Assemblies/Hotkeys.dll new file mode 100644 index 0000000000000000000000000000000000000000..f7e7b6159f6dafb81e2c8ed3e48e926da60b34dd GIT binary patch literal 46592 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
  • 1.0
  • 1.1
  • +
  • 1.2
  • Aze.HotkeysDev This mod adds keybindings to the Architect subtabs, direct hotkeys to access any designator, and the ability to create multi-keybindings. diff --git a/Source/Hotkeys/Command Hotkeys/Direct Hotkeys/Patch_CheckGizmoKeybindings.cs b/Source/Hotkeys/Command Hotkeys/Direct Hotkeys/Patch_CheckGizmoKeybindings.cs index dfa0e72..e66db22 100644 --- a/Source/Hotkeys/Command Hotkeys/Direct Hotkeys/Patch_CheckGizmoKeybindings.cs +++ b/Source/Hotkeys/Command Hotkeys/Direct Hotkeys/Patch_CheckGizmoKeybindings.cs @@ -4,7 +4,7 @@ namespace Hotkeys { - [HarmonyPatch(typeof(Command), nameof(Command.GizmoOnGUI))] + [HarmonyPatch(typeof(Command), "GizmoOnGUIInt")] public class Patch_CheckGizmoKeybindings { static void Postfix(Command __instance) @@ -18,6 +18,3 @@ static void Postfix(Command __instance) } } } - - - diff --git a/Source/Hotkeys/Command Hotkeys/Patch_ApplyGizmoHotkeys.cs b/Source/Hotkeys/Command Hotkeys/Patch_ApplyGizmoHotkeys.cs index d64d82d..baebd59 100644 --- a/Source/Hotkeys/Command Hotkeys/Patch_ApplyGizmoHotkeys.cs +++ b/Source/Hotkeys/Command Hotkeys/Patch_ApplyGizmoHotkeys.cs @@ -5,7 +5,7 @@ namespace Hotkeys { - [HarmonyPatch(typeof(Command), nameof(Command.GizmoOnGUI))] + [HarmonyPatch(typeof(Command), "GizmoOnGUIInt")] class Patch_ApplyGizmoHotkeys { public static List newCommands = new List(); diff --git a/Source/Hotkeys/Command Hotkeys/Patch_AssignGizmoKey.cs b/Source/Hotkeys/Command Hotkeys/Patch_AssignGizmoKey.cs index c13e9fc..c4a62ea 100644 --- a/Source/Hotkeys/Command Hotkeys/Patch_AssignGizmoKey.cs +++ b/Source/Hotkeys/Command Hotkeys/Patch_AssignGizmoKey.cs @@ -7,93 +7,83 @@ namespace Hotkeys { - [HarmonyPatch(typeof(Command), nameof(Command.GizmoOnGUI))] - class Patch_AssignGizmoKey + [HarmonyPatch(typeof(Command), "GizmoOnGUIInt")] + static class Patch_AssignGizmoKey { [HarmonyPriority(Priority.First)] static void Postfix(ref GizmoResult __result, Command __instance) { - if (__result.State != GizmoState.OpenedFloatMenu) { return; } - if (!Hotkeys.settings.useCommandHotkeys) { return; } + if (!Hotkeys.settings.useCommandHotkeys || __result.State != GizmoState.OpenedFloatMenu) + return; - KeyBindingDef keyDef = DefDatabase.AllDefsListForReading.Find(x => x.defName == "Hotkeys_GizmoAssigner"); - if (Event.current.button == 1 && keyDef.IsDown) - { - var options = new List(); - bool alreadyDirect = DirectKeys.KeyPresent(__instance); - bool alreadyGizmo = GizmoKeys.KeyPresent(__instance); + Log.Message("PATCH Proceeds: " + __result.State); - if (!alreadyGizmo) - { - if (!alreadyDirect) - { - options.Add(new FloatMenuOption("Make Hotkey", delegate () - { - MakeGizmoHotkey(__instance); - })); - } - } + var keyDef = DefDatabase.AllDefsListForReading.Find(x => x.defName == "Hotkeys_GizmoAssigner"); + if (!(Event.current.button == 1 && keyDef.IsDown)) + return; - if (!alreadyDirect && __instance is Designator) - { - if (!alreadyGizmo) - { - options.Add(new FloatMenuOption("Make Direct Hotkey", delegate () - { - MakeDirectHotkey(__instance); - })); - } - } + var options = GetFloatMenuOptions(__instance); + var window = new FloatMenu(options, "Select Category", false); + Find.WindowStack.Add(window); + __result = new GizmoResult(GizmoState.Clear, null); + } - if (alreadyGizmo) - { - options.Add(new FloatMenuOption("Edit Key", delegate () - { - var edit = new Dialog_EditKeySpecificity(); - edit.Command = __instance; - Find.WindowStack.Add(edit); - })); - } + private static List GetFloatMenuOptions(Command __instance) + { + var options = new List(); + bool alreadyDirect = DirectKeys.KeyPresent(__instance); + bool alreadyGizmo = GizmoKeys.KeyPresent(__instance); - if (alreadyGizmo || alreadyDirect) - { - options.Add(new FloatMenuOption("Clear Hotkey", delegate () - { - ClearHotkey(__instance, alreadyDirect, alreadyGizmo); - })); - } - - var window = new FloatMenu(options, "Select Category", false); - Find.WindowStack.Add(window); + if (!alreadyGizmo && !alreadyDirect) + { + options.Add(new FloatMenuOption("Make Hotkey", () => __instance.MakeGizmoHotkey())); + if (__instance is Designator) + options.Add(new FloatMenuOption("Make Direct Hotkey", () => __instance.MakeDirectHotkey())); + } - __result = new GizmoResult(GizmoState.Mouseover, null); + if (alreadyGizmo) + { + options.Add(new FloatMenuOption("Edit Key", () => + { + var edit = new Dialog_EditKeySpecificity(); + edit.Command = __instance; + Find.WindowStack.Add(edit); + })); } + + if (alreadyGizmo || alreadyDirect) + options.Add(new FloatMenuOption("Clear Hotkey", () => __instance.ClearHotkey())); + + return options; } - private static void MakeGizmoHotkey(Command __instance) + private static void MakeGizmoHotkey(this Command __instance) { GizmoKeys.AddKey(__instance); - Messages.Message("Gizmo Hotkey '" + __instance.LabelCap + "' added.", MessageTypeDefOf.TaskCompletion, false); + Message(__instance, "Gizmo", "added"); } - private static void MakeDirectHotkey(Command __instance) + private static void MakeDirectHotkey(this Command __instance) { DirectKeys.AddKey(__instance); - Messages.Message("Direct Hotkey '" + __instance.LabelCap + "' added.", MessageTypeDefOf.TaskCompletion, false); + Message(__instance, "Direct", "added"); } - private static void ClearHotkey(Command __instance, bool alreadyDirect, bool alreadyGizmo) + private static void ClearHotkey(this Command __instance) { - if (alreadyDirect) + if (DirectKeys.KeyPresent(__instance)) { DirectKeys.RemoveKey(__instance); - Messages.Message("Direct Hotkey '" + __instance.LabelCap + "' cleared.", MessageTypeDefOf.TaskCompletion, false); + Message(__instance, "Direct", "cleared"); } - if (alreadyGizmo) + if (GizmoKeys.KeyPresent(__instance)) { GizmoKeys.RemoveKey(__instance); - Messages.Message("Gizmo Hotkey '" + __instance.LabelCap + "' cleared.", MessageTypeDefOf.TaskCompletion, false); + Message(__instance, "Gizmo", "cleared"); } } + + private static void Message(Command __instance, string keyType, string change) => + Messages.Message(keyType + " Hotkey " + __instance.LabelCap + " " + change, MessageTypeDefOf.TaskCompletion, false); } } diff --git a/Source/Hotkeys/Hotkeys.csproj b/Source/Hotkeys/Hotkeys.csproj index 8175252..58e117a 100644 --- a/Source/Hotkeys/Hotkeys.csproj +++ b/Source/Hotkeys/Hotkeys.csproj @@ -18,7 +18,7 @@ false none false - ..\..\1.1\Assemblies\ + ..\..\1.2\Assemblies\ DEBUG;TRACE prompt 4 @@ -37,6 +37,7 @@ packages\Lib.Harmony.2.0.0.6\lib\net472\0Harmony.dll + False ..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll diff --git a/Source/Hotkeys/Multi Keys/Trans_GizmoRenderKeyMods.cs b/Source/Hotkeys/Multi Keys/Trans_GizmoRenderKeyMods.cs index 755ca9f..2bfff1a 100644 --- a/Source/Hotkeys/Multi Keys/Trans_GizmoRenderKeyMods.cs +++ b/Source/Hotkeys/Multi Keys/Trans_GizmoRenderKeyMods.cs @@ -8,7 +8,7 @@ namespace Hotkeys { // Transpiler to show multi key labels - [HarmonyPatch(typeof(Command), nameof(Command.GizmoOnGUI))] + [HarmonyPatch(typeof(Command), "GizmoOnGUIInt")] public class Trans_GizmoRenderKeyMods { static IEnumerable Transpiler(IEnumerable instructions)