
Smart Key Prompts
Активный0.0
Установок
Последнее обновление
Версии
Smart Key Prompts
Мод Smart Key Prompts для Minecraft предлагает игрокам умные подсказки управления и удобную перенастройку клавиш, значительно улучшая игровой процесс и упрощая управление привязками клавиш.
Основные возможности
Этот мод динамически отображает релевантные подсказки управления в зависимости от текущего контекста игры. Разработчики могут использовать предоставленные API для управления видимостью подсказок:
// Показать зарегистрированную привязку клавиш по идентификатору
public static void show(String id, String desc);
// Отобразить пользовательскую подсказку с клавишей и описанием
public static void custom(String id, String key, String desc);
// Создать псевдоним для существующей привязки клавиш с другим названием
public static void alias(String id, String key, String desc);
Вызывайте эти методы во время клиентского тика с условной логикой для отображения подсказок. Также доступна поддержка через датапаки, хотя с некоторыми ограничениями по условиям.
Каждый id
представляет идентификатор группы клавиш. Например, интеграция с JEI использует jei_skp
и по умолчанию отключена. Вы можете в любое время отключать или включать группы клавиш через конфигурацию, используя их идентификаторы.
Управление в игре
Когда подсказки видны:
- Нажмите Control (по умолчанию: K) + Левый клик, чтобы открыть экран настройки привязок клавиш
- Нажмите Control + Правый клик, чтобы переключить видимость и позицию HUD
- Прокрутите колесо мыши, удерживая Control, чтобы изменить масштаб HUD
Примечание: Быстрая настройка привязок клавиш работает только для
show
иalias
. Она не работает дляcustom
подсказок.
Удержание клавиши Control блокирует подсказки, устраняя необходимость точного выбора времени для взаимодействий.
Примеры использования
Пример на Java:
@SubscribeEvent
public static void tick(TickEvent.ClientTickEvent event) {
if (!ModList.get().isLoaded("immersive_aircraft")) return;
Player player = Minecraft.getInstance().player;
if (player == null || Minecraft.getInstance().screen != null) return;
String vehicle = Utils.getVehicleType(player);
if (vehicle != null && vehicle.startsWith("immersive_aircraft:")) {
SmartKeyPrompts.custom(modid, Utils.getKeyByDesc("key.inventory"), "immersive_aircraft.slot.upgrade");
SmartKeyPrompts.show(modid, "key.immersive_aircraft.dismount");
String keyUse = Utils.getKeyByDesc("key.immersive_aircraft.fallback_use");
SmartKeyPrompts.custom(modid,
Objects.equals(keyUse, "key.keyboard.unknown") ? "key.mouse.right" : keyUse,
"item.immersive_aircraft.item.weapon");
if (vehicle.equals("immersive_aircraft:biplane")) {
SmartKeyPrompts.custom(modid, Utils.getKeyByDesc("key.jump"), "item.immersive_aircraft.engine");
}
}
}
Пример на KubeJS:
let SmartKeyPrompts = Java.loadClass("com.mafuyu404.smartkeyprompts.SmartKeyPrompts");
let Utils = Java.loadClass("com.mafuyu404.smartkeyprompts.init.Utils");
ClientEvents.tick(event => {
let player = event.player;
if (["key.left", "key.right", "key.forward", "key.back"]
.map(desc => Utils.isKeyPressedOfDesc(desc)).includes(true)) {
SmartKeyPrompts.show("parcool", "key.parcool.Dodge");
}
if (!player.onGround() && !player.isInWater()) {
SmartKeyPrompts.show("parcool", "key.parcool.Breakfall");
SmartKeyPrompts.show("parcool", "key.parcool.ClingToCliff");
}
if (player.isSprinting()) {
SmartKeyPrompts.show("parcool", "key.parcool.FastRun");
}
if (Utils.isKeyPressedOfDesc("key.parcool.FastRun")) {
SmartKeyPrompts.show("parcool", Utils.getKeyByDesc("key.parcool.Dodge"));
SmartKeyPrompts.custom("parcool", Utils.getKeyByDesc("key.sneak"), "parcool.action.CatLeap");
}
});
Пример с датапаком:
{
"modid": "tacz_skp",
"vars": {
"modLoaded": "isModLoaded('tacz')",
"hasTaczGun": "mainHandItem() == 'tacz:modern_kinetic_gun'",
"isNotInVehicle": "!isInVehicle()"
},
"entries": [
{
"when": {
"modLoaded": "true",
"hasTaczGun": "true",
"isNotInVehicle": "true"
},
"then": [
"show('tacz_skp', 'key.tacz.shoot.desc')",
"show('tacz_skp', 'key.tacz.zoom.desc')",
"show('tacz_skp', 'key.tacz.reload.desc')"
]
}
]
}
Планируемые функции
- Больше позиций отображения подсказок (например, следование за курсором)
- Поддержка двойного нажатия и длительного удержания клавиш
- Улучшения внешнего вида HUD
- Возможная поддержка между версиями