Skip to content

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)