

Chatbox for mc - система диалогов для Minecraft
Этот мод переносит в Minecraft полноценную систему диалоговых окон, вдохновлённую популярными визуальными новеллами. Всё настраивается через датапаки, что позволяет полностью персонализировать визуальный стиль и функциональность диалогов.
Основные возможности
Создавайте многообразные темы для диалоговых блоков и мгновенно переключайтесь между ними с помощью простых команд. Вы сможете тонко настраивать внешний вид, расположение и размеры всех элементов интерфейса: самих диалоговых окон, панелей выбора ответов, кнопок истории переписки и портретов персонажей.
Портреты персонажей поддерживают три формата: стандартные изображения, аватары игроков и текстуры предметов. Для изображений доступны три встроенных анимации появления, а также возможность создавать собственные эффекты.
Диалоговая система
Настройте разветвлённые диалоги с множественными вариантами ответов. Каждый выбор может выполнять пользовательские команды или переносить персонажа к другим диалоговым веткам. Все текстовые элементы совместимы с системой перевода Minecraft, что упрощает локализацию контента.
Поскольку конфигурация полностью реализована через датапаки, любые изменения можно мгновенно применить командой /reload. Создавайте сложные диалоговые системы, не написав ни строчки кода!
Встроенные команды
Смена темы:
/chatbox theme <data_pack_path : ResourceLocation>
Переход к определённому диалогу:
/chatbox skip <data_pack_path : ResourceLocation> <group : String> <index : int>
Открытие диалогового окна:
/chatbox open
Система событий для разработчиков
Для пользователей KubeJS мод предоставляет комплексную систему событий:
// Срабатывает ПЕРЕД отрисовкой диалога. Предоставляет GuiGraphics для кастомной графики. Можно отменить.
let $ChatBoxRender$Post = Java.loadClass("com.zhenshiz.chatbox.event.ChatBoxRender$Post");
NativeEvents.onEvent($ChatBoxRender$Post, event => {
let guiGraphics = event.getGuiGraphics();
});
// Срабатывает ПОСЛЕ отрисовки диалога. Предоставляет GuiGraphics для кастомной графики.
let $ChatBoxRender$Pre = Java.loadClass("com.zhenshiz.chatbox.event.ChatBoxRender$Pre");
NativeEvents.onEvent($ChatBoxRender$Pre, event => {
let guiGraphics = event.getGuiGraphics();
});
// Срабатывает при переходе к другому диалогу. Предоставляет метаданные для создания кастомной функциональности.
let $SkipChatEvent = Java.loadClass("com.zhenshiz.chatbox.event.SkipChatEvent");
NativeEvents.onEvent($SkipChatEvent, event => {
let { chatBoxScreen, resourceLocation, group, index } = event;
});
Примеры датапаков и полная документация доступны на GitHub. В разработке находится веб-инструмент для автоматической генерации JSON-конфигураций, который значительно упростит процесс настройки диалогов.