Controlling
11 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 ControllingApi.java and ComboModifier.java to expose keybind combo API; added ComboKeyBinding class; modified GuiNewControls.java to support combo UI (+112 lines); updated DisplayMode enum; added combo documentation to README (+30 lines). - @Caedis
- Added: keyboard combo system, ControllingApi and ComboModifier API, combo keybinding support
- Migration: Addon mods wanting to support key combos should use the new ComboModifier API in Controlling.
- #7 Updated Gradle wrapper and build configuration; modified GuiNewControls.java and GuiNewKeyBindingList.java to incorporate ModernKeybinding UI improvements; updated dependencies and gradle.properties. - @Caedis
- Added: ModernKeybinding integration
Bug Fixes
- #13 Added keycode 0 check in MixinKeyBinding to prevent null/invalid keycodes from triggering bindings. - @Caedis
- Fixed: Print Screen key triggering Baubles GUI
- Closes GTNH#23862
- #12 Updated KeyModifier.java deserialization to use Enum.valueOf() with the .name() string representation for more robust enum recovery. - @Caedis
- Fixed: KeyModifier deserialization reliability
Performance
- #11 Optimized sorting and comparison logic in SortOrder.java and KeyModifier.java, likely reducing object allocations and improving lookup efficiency. - @Caedis
- #10 Added enum value caching in SortOrder.java and KeyModifier.java to avoid repeated calls to .values(). - @Caedis
Internal / Refactor
- #24 Split monolithic mixins.controlling.json into mixins.controlling.early.json and mixins.controlling.late.json; added EarlyMixinsLoader.java and LateMixinsLoader.java to load mixins via GTNHMixins IMixins interface; updated MixinGameSettings and MixinKeyBinding package structure. - @Caedis
- Added: EarlyMixinsLoader, LateMixinsLoader, early and late mixin configs
Chores
- #39 Modified label-test.yml and label-test-review-refresh.yml to refine test trigger logic and conditions. - @label-sync-bot-gtnh
- #34 Added .github/workflows/label-test.yml and label-test-review-refresh.yml for automated test triggering based on PR labels. - @label-sync-bot-gtnh
- Added: label-test.yml workflow, label-test-review-refresh.yml workflow
- #21 Added .github/workflows/gate-by-required.yml to enable automated PR gating (excludes fullpack tests as this is a client-side mod). - @MalTeeez
- Added: PR gate workflow configuration
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Caedis (8), @Alexdoru (2), @Dream-Master (2), @label-sync-bot-gtnh[bot] (2), @mitchej123 (2), @Algent (1), @koolkrafter5 (1), @MalTeeez (1), @Nikolay-Sitnikov (1), @OneEyeMaker (1), @UltraProdigy (1)