Controlling
10 merged pull requests.
New Features
- #15 Added GuiVisualKeyboard.java (+602 lines) with keyboard rendering and interaction logic; modified GuiNewControls.java and GuiNewKeyBindingList.java to integrate keyboard picker; added lwjgl3ify soft dependency support; updated lang files and mod version. - @Algent
- Added: visual keyboard GUI, keyboard key picker, lwjgl3ify integration for layout detection
- Fixed: KeyboardWizard-Legacy incompatibility
- Closes GTNH#25748
- #8 Added the ControllingApi and ComboModifier classes so other mods can set a default modifier for a keybind, plus MixinKeyBinding and MixinGameSettings and changes to GuiNewControls. Tested with GTNHLib's synckeybind through the GT wrench mode on client and server. Build files were also updated (settings convention 2.0.20, gradle wrapper, Jabel). - @Caedis
- Added: Combo keybindings with Ctrl, Shift and Alt, API for other mods to set a default modifier for a keybind
- Removed: ModernKeybinding compile dependency
Bug Fixes
- #13 MixinKeyBinding.setKeyBindState now skips the keybinding loop when keyCode is 0, so unbound bindings are not set to pressed. - @Caedis
- Fixed: Print Screen opening Baubles
- Closes GTNH#23862
- #12 KeyModifier.fromSerializedName switch now matches "CONTROL", "SHIFT" and "ALT" (the enum name() values) instead of the display names, fixing a regression from the previous PR. - @Caedis
- Fixed: key modifiers not restored when loading keybinds
Performance
- #11 Replaced loops and switch statements in SortOrder.getName, KeyModifier.fromSerializedName and fromKeyCode with switch expressions. - @Caedis
- #10 Cached values() in a static VALUES array in SortOrder and KeyModifier, and used it instead of repeated values() calls. - @Caedis
Internal / Refactor
- #24 Added EarlyMixinsLoader, LateMixinsLoader and a Mixins enum using GTNHMixins IMixins, moved the existing mixins into an early package with separate early and late mixin JSON configs, set coreModClass, and added Angelica as a runtime-only dev dependency. - @Caedis
- Added: early and late mixin loaders
Chores
- #39 label-test-review-refresh.yml now records the PR number and uploads it as an artifact instead of calling the shared reusable workflow. label-test.yml adds a workflow_run trigger, actions: read permission, and passes review_signal_run_id and review_signal_head_sha to the shared workflow. - @label-sync-bot-gtnh
- #34 Added label-test.yml and label-test-review-refresh.yml, generated by Label-Sync-GTNH, which call reusable workflows. - @label-sync-bot-gtnh
- #21 Added .github/workflows/gate-by-required.yml calling the GTNH-Actions-Workflows gate-by-required workflow. - @MalTeeez
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Caedis (7), @Alexdoru (2), @label-sync-bot-gtnh[bot] (2), @mitchej123 (2), @Algent (1), @Dream-Master (1), @koolkrafter5 (1), @MalTeeez (1), @Nikolay-Sitnikov (1), @UltraProdigy (1)