
Modern KeyBinding
Активный0.0
Установок
Последнее обновление
Версии
Modern KeyBinding
Данная модификация переносит функционал KeyModifier и KeyConflictContext из более новых версий Minecraft обратно на платформы Fabric и ранние версии Forge.
Основные возможности
Теперь вы можете назначать комбинации клавиш с использованием модификаторов. Например, "Ctrl + G" или "Alt + S" - такие сочетания становятся доступными для настройки.
Клавиши с одинаковой активацией, но разными контекстами конфликтов больше не мешают друг другу. Это решает проблему пересекающихся назначений.
Функция "неконфликтующие клавиши" (по умолчанию отключена) позволяет активировать все назначения с одинаковой клавишей при её нажатии.
Важная информация
Мод несовместим с NEI. Вместо него рекомендуется использовать NEI Unofficial от GTNH.
Подключение через 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
- Работает только в интерфейсах
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);
}
}