
EasyUIBuilder: Создание интерфейсов Minecraft Bedrock без на
"EasyUIBuilder" - небольшой инструмент, предназначенный для более быстрого создания JSON-форм интерфейса в Minecraft Bedrock Edition!"
Refaltor77/EasyUIBuilder, github.com
Если вы когда-либо пытались создать.custom интерфейс для аддона или ресурс-пака Minecraft Bedrock, вы знаете, насколько это больно. JSON-файлы интерфейса мощны, но они также громоздки, легко ломаются и скучно пишутся вручную. EasyUIBuilder решает эту проблему, позволяя генерировать JSON-интерфейсы Minecraft Bedrock с помощью fluent PHP API вместо ручного написания JSON с нуля.
Что делает EasyUIBuilder
EasyUIBuilder - это PHP-библиотека (лицензирована MIT, 104 звезд на GitHub), которая уменьшает трение при создании JSON-файлов интерфейса для Minecraft Bedrock Edition. Вместо ручного написания или редактирования JSON вы пишете читаемый, цепочечный PHP-код, который автоматически генерирует валидные определения интерфейса.
Будем ясны относительно того, что это означает на практике. Вы не замените систему интерфейса Minecraft. Вы пишете кодовый слой поверх нее, который выводит необходимые вашему аддону JSON-файлы. Представьте, что используете фреймворк CSS вместо написания всех стилей вручную. Вывод - стандартный JSON, совместимый с Bedrock, но вам никогда не придется напрямую с ним работать.
Это важно потому, что JSON-интерфейс Bedrock сложен. Простая кнопка требует объявлений привязок, определений элементов управления, анимаций, расчетов смещения и спецификаций цвета. Соедините пять кнопок, и у вас будет hundreds строк JSON. EasyUIBuilder сокращает это до горстки читаемых, повторно используемых строк кода.
Почему это нужно (Случаи использования)
Разработчики аддонов, создающие все с custom интерфейсами, получают максимальную выгоду. Это включает меню управления инвентарем, системы магазинов, панели настроек и игровые меню. Если ваш аддон требует, чтобы игроки видели или взаимодействовали с чем-то помимо базовых команд чата, вы строите интерфейс.
Но это не только аддоны. Администраторы серверов, создающие серверные инструменты, плагины ланчера или панели управления, могут использовать EasyUIBuilder для генерации необходимых им компонентов интерфейса без борьбы с сырым JSON. Если вы распространяете свой аддон через серверы с помощью инструментов, таких как наш Бесплатный DNS для Minecraft или управляете доступом игроков с помощью Создателя белого списка, custom интерфейсы часто идут следующими.
Самая большая выгода для команд. Когда определения интерфейса живут как код, а не JSON, они интегрируются с контролем версий, обзором кода и автоматизированным тестированием. Ваша команда может рефакторить, документировать и сотрудничать над интерфейсом без ручного объединения вложенных объектов JSON.
Начало работы: Установка и Настройка
Вам нужен PHP 8.0 или выше. Если вы управляете зависимостями PHP с помощью Composer (это должны делать), установка占ает одну строку:
composer require refaltor/easy-ui-builderНет системных зависимостей, нет внешних инструментов. После этого импортируйте библиотеку в свой код и начните строить интерфейсы. Самый быстрый «Hello World» выглядит так:
use refaltor\ui\builders\Root;
use refaltor\ui\elements\Label;
use refaltor\ui\colors\BasicColor;
$root = Root::create("my_namespace");
$root->addElement(
Label::create("hello", "Привет, Minecraft!")
->setFontSize(Label::FONT_EXTRA_LARGE)
->setShadow()
->setColor(BasicColor::yellow())
);
$root->generateAndSaveJson("ui/my_screen.json");Этот код создает элемент метки, окрашивает его в желтый цвет с тенью и записывает JSON-файл в ваш ресурс-пак. Никакого ручного редактирования JSON не требуется.
Ключевые особенности, которые имеют значение
Fluent API
Каждый элемент поддерживает цепочечные вызовы методов. Вы создаете элемент и вызываете методы на нем, такие как `->setColor()`, `->setSize()`, `->setVisible()` и т.д. Это читается как предложение, и вам не нужно беспокоиться о синтаксисе JSON. Библиотека обрабатывает кавычки, скобки, вложенность и валидацию.
Анимации и Привязки
Интерфейсы Bedrock могут анимироваться (затухание, скольжение, смена цвета) и привязываться к переменным (показать этот элемент, когда здоровье игрока низкое). EasyUIBuilder включает более 30 функций анимационных уменьшений и полную систему привязок для платформенно-специфичных макетов и условной видимости. Вы объявляете это в коде, а не в сырых структурах JSON.
Автоматическая Валидация
Библиотека валидирует сгенерированный JSON против схемы UI Bedrock автоматически. Это ловит ошибки рано, а не позволяет им проваливаться молчально во время выполнения. Если вы пытаетесь установить недопустимое значение цвета или пропущенное обязательное свойство, библиотека сообщит вам об этом до записи файла.
Утилиты для Цветов
Предопределенные цвета, преобразование RGB, случайные цвета, комплементарные цвета и генерация пастельных цветов встроены. Более нет необходимости искать коды шестнадцатеричных цветов или делать цветовую математику в голове.
Утилитные Компоненты
Общие элементы, такие как кнопки «Закрыть» и рендеры игроков, поставляются предварительно собранными. Вы не изобретаете велосипед для шаблонов, необходимых каждому аддону.
Общие ошибки и советы
Одна вещь, которая удивляет новых пользователей: вывод - это JSON, а не PHP-объекты. Вы вызываете `->generateAndSaveJson()` и он записывается на диск. Вы не манипулируете интерфейсом во время выполнения в коде аддона. Библиотека - это инструмент времени сборки, генерирующий файлы, потребляемые вашим аддоном.
Синтаксис системы привязок требует минуты, чтобы понять. Есть глобальные привязки, привязки вида, привязки коллекций и привязки видимости. Каждый тип служит разной цели. README охватывает это, и стоит внимательно прочитать эти разделы, прежде чем создавать свою первую сложную панель.
Анимационные уменьшения имеют конкретные имена (exponential_in, cubic_out, elastic_loop, etc.). Если вы硬кодите имена анимаций, они проваливаются молчально, если вы опечатались. Использование методов класса констант безопаснее.
Пути к файлам относительны к месту запуска вашего PHP-скрипта. Если вы автоматизируете сборку UI в конвейере CI/CD, правильно настройте рабочую директорию, иначе файлы окажутся в непредвиденных местах.
Что выглядит как альтернативы
Вы могли бы написать JSON вручную. Это работает, но медленнее и склонно к ошибкам. Вы управляете отступами, кавычками и правилами синтаксиса вручную. Для сложных интерфейсов с несколькими экранами вы найдете себя копирующим и аккуратно редактирующим большие блоки. Это рабочий процесс, который EasyUIBuilder был построен для замены.
Некоторые разработчики используют текстовые редакторы с валидацией JSON-схемы. Это помогает поймать некоторые ошибки, но вы все равно пишете много бумажной работы. Фреймворки определения интерфейса для других игр (Unity, Unreal) предлагают аналогичные подходы код-генерации, и EasyUIBuilder приносит это удобство в Minecraft Bedrock.
Для простых одноразовых интерфейсов ручной код не катастрофичен. Если вы строите серьезный аддон или поддерживаете несколько экранов в проекте, код-генерация оправдана быстро.
Прежде чем погрузиться
Этот инструмент предполагает, что вы уже понимаете концепции интерфейса Minecraft Bedrock: экраны, панели, кнопки, привязки и общую структуру того, что вы пытаетесь построить. Это не визуальный дизайнер. Вам все равно нужно знать, какие элементы существуют и как они работают. То, что это спасает вас от, - это написание синтаксиса JSON и управление повторяющимися частями.
Если вы строите сервер с несколькими аддонами или распространяете инструменты, которым нужны custom интерфейсы, добавление шага сборки, который генерирует UI из кода, стоит времени настройки. Вы получаете контроль версий, сотрудничество команды и меньше ошибок синтаксиса.
Refaltor77/EasyUIBuilder - MIT, ★104Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.
Комментарии
Пока нет комментариев. Станьте первым, кто поделится своим мнением!


