
KotlinMCUI
KotlinMCUI - библиотека для создания GUI в Майнкрафт на Kotlin DSL. Декларативная вёрстка, анимации, компоненты и кроссплатформенность для разработчиков модов.
KotlinMCUI - это библиотека для разработчиков модов, которая позволяет создавать графические интерфейсы (GUI) в Майнкрафт через Kotlin DSL. Если вы когда-нибудь писали моды и пытались сверстать нормальное меню настроек или кастомный экран - вы знаете, какая это боль. Ванильный Screen API в Minecraft устроен так, что даже простую кнопку со слайдером приходится собирать вручную, считать координаты пикселей и молиться, чтобы на другом разрешении экрана всё не разъехалось. KotlinMCUI решает именно эту проблему.
Что это вообще такое
По сути, это UI-фреймворк для модов. Вы описываете интерфейс декларативно - примерно как в Jetpack Compose или React - а библиотека сама рендерит всё в ванильном стиле. Синтаксис простой, вёрстка адаптивная, и не нужно вручную высчитывать позицию каждого элемента.
Проект доступен на Modrinth и рассчитан на современные версии Minecraft из ветки 1.20.x - 1.21.x с Fabric Loader. Но сама архитектура библиотеки задумана кроссплатформенной: ядро не привязано ни к конкретной версии игры, ни к загрузчику. Об этом ниже.
Кроссплатформенность и бинарная совместимость
Главная фишка KotlinMCUI - независимость от версии Майнкрафт и лоадера. Вся библиотека поставляется в одном jar-файле, а совместимость с конкретной версией игры обеспечивает отдельный бэкенд. Это значит:
- Один jar - не нужно собирать отдельные версии библиотеки под каждый Minecraft.
- Независимость от игры и загрузчика - ядро работает само по себе.
- Кроссплатформенная точка входа - единый API для всех платформ.
- Бэкенд гарантирует совместимость - именно он адаптирует библиотеку под конкретную версию и лоадер.
Для разработчика это означает, что UI-код, написанный один раз, будет работать на разных версиях игры без переписывания. Правда, бэкенд под нужную платформу подключать всё равно придётся - это не магия, а грамотное разделение архитектуры.
Возможности библиотеки
Список того, что умеет KotlinMCUI, впечатляет для такого компактного проекта:
- Декларативная адаптивная вёрстка - описываете структуру, а не координаты.
- Простой синтаксис - Kotlin DSL делает код читаемым.
- Ванильный стиль UI - интерфейс выглядит как родной для Майнкрафта.
- Контекстное масштабирование - элементы подстраиваются под размер экрана.
- Управление с клавиатуры - навигация по элементам без мыши.
- Нарратор - поддержка озвучки элементов интерфейса.
- Тултипы - всплывающие подсказки при наведении.
- Фокус и ховер - состояния элементов при взаимодействии.
- Локальные переменные - хранение состояния прямо в UI-коде.
- Интерполированная анимация - плавные переходы и эффекты.
- Перевод текста - встроенная поддержка локализации.
Компоненты
Набор готовых компонентов покрывает большинство типичных задач при создании меню и экранов в модах:
- Контейнеры:
Row,Column,Box- для компоновки элементов. - Кнопки:
Button- стандартная кнопка в ванильном стиле. - Слайдеры:
Slider- ползунок для числовых значений. - Инвентарь:
Container,Slot,Item- для работы со слотами и предметами. - Текст:
TextAutoFold- автоматический перенос длинного текста.EditableText- редактируемое текстовое поле.- Настройка размера шрифта, цвета.
- Стили: курсив, жирный, тень, подчёркивание и другое.
- Изображения:
- Загрузка из локальных файлов.
- Загрузка из ресурсов мода.
- Nineslice-рендер - корректное масштабирование текстур без искажения краёв.
- Ленивые списки:
LazyColumn- для длинных прокручиваемых списков, которые не грузят всё сразу.
LazyColumn - отдельно приятная штука. Если вы делаете, например, список серверов или настроек с сотнями пунктов, обычный подход начнёт жрать память и фризить. Ленивая колонка рендерит только видимые элементы, как RecyclerView в Android.
Кому это нужно
Важный нюанс: KotlinMCUI - это библиотека для разработчиков, а не мод для обычных игроков. Если вы просто играете в Майнкрафт и ищете мод, который улучшит интерфейс - это не то. Но если вы пишете мод и вам нужно сделать красивое меню настроек, кастомный HUD или экран с кнопками - KotlinMCUI сэкономит вам кучу времени.
Сравните сами: в ванилле создание экрана - это наследование от Screen, ручная отрисовка через MatrixStack (или DrawContext в новых версиях), ручной расчёт позиций, ручная обработка кликов. С KotlinMCUI вы пишете что-то вроде "колонка, в ней текст, под ним кнопка, под кнопкой слайдер" - и всё работает. С анимациями, тултипами и масштабированием.
Совместимость
Проект ориентирован на Fabric и совместимые загрузчики, актуальные версии Minecraft 1.20.x - 1.21.x. Архитектура с отдельным бэкендом теоретически позволяет портировать библиотеку и на другие платформы, но на момент написания основной фокус - именно Fabric.
Стоит ли использовать
Если вы разработчик модов на Kotlin и вам нужен GUI - однозначно стоит посмотреть. Альтернатив в экосистеме Майнкрафт не так много: либо ванильный Screen API (боль), либо самописные решения (ещё больше боли), либо что-то вроде Cloth Config (но это только для конфигов). KotlinMCUI закрывает именно нишу универсального UI-фреймворка с современным подходом к вёрстке.
Скачать KotlinMCUI можно для интеграции в свой мод-проект. Библиотека лёгкая, в одном jar, и не тянет за собой лишних зависимостей.
Как поиграть с друзьями с модом KotlinMCUI?
Мод KotlinMCUI куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода KotlinMCUI будет готов за пару минут - BungeeHost сделает всё за вас.
