现代化按键绑定

现代化按键绑定

将Port KeyModifier && KeyConflictContext回移植到Fabric与早期Forge

基础库

现代按键绑定

该模组将新版本的 KeyModifier 与 KeyConflictContext 移植回了 Fabric 和早期 Forge。

特性

现在你可以使用按键修饰符来定义按键绑定的激活键,例如“Ctrl + G”或“Alt + S”;

拥有相同激活键但不同按键冲突上下文的按键绑定不再冲突。

“非冲突键”(默认禁用):按下某个键时,所有使用该键的按键绑定都会被触发。

注意:

该模组与 NEI 一起使用会导致崩溃。请改用 GTNH 的 NEI 非官方版(依赖项:CodeChickenCore | CodeChickenLib)。

作为 Gradle 依赖导入

repositories {
    //...
    maven {
        url "https://maven.nova-committee.cn/releases"
    }
}
dependencies {
    //...
    // Forge
    implementation "committee.nova.mkb.forge:mkb-${mc_version}:${mod_version}"
    // Fabric
    modImplementation "committee.nova.mkb.fabric:mkb-${mc_version}:${mod_version}"
}

注册一个按键绑定

注册一个按键绑定,满足以下条件:

  • 按下 Alt 和 C 时触发;

  • 仅在 GUI 中可用。

ClientProxy.java

public class ClientProxy {
    public void init(final FMLInitializationEvent event) {
        //...
        yourKeyBinding = KeyBindingRegistry.INSTANCE.registerKeyBinding("key.exampleKey", KeyConflictContext.GUI, KeyModifier.ALT, Keyboard.KEY_C, "key.categories.example");
    }
}

修改现有按键绑定的属性

ClientProxy.java

public class ClientProxy {
    //...
    public void postInit(final FMLPostInitializationEvent event) {
        final IKeyBinding extended = (IKeyBinding) yourKeyBinding;
        // 修改按键的键码和修饰符,覆盖其默认值。
        extended.setInitialKeyModifierAndCode(KeyModifier.ALT, Keyboard.KEY_E);
        // 修改按键的键码和修饰符。
        extended.setKeyModifierAndCode(KeyModifier.ALT, Keyboard.KEY_E);
        // 修改按键的冲突上下文。
        extended.setKeyConflictContext(KeyConflictContext.IN_GAME);
    }
}