▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/KotlinMCUI
KotlinMCUI

KotlinMCUI

KotlinMCUI - библиотека для создания GUI в Майнкрафт на Kotlin DSL. Декларативная вёрстка, анимации, компоненты и кроссплатформенность для разработчиков модов.

Оцените первым
18.9K
4

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 сделает всё за вас.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.2.x26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x

Платформы

Поддерживаемые окружения

Клиент

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:7 месяцев назад
Обновлён:2 месяца назад
Главная