Skip to content

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)