- Загрузчики
- Forge
- Скачиваний на Modrinth
- 97
- Подписчиков на Modrinth
- 1
- версий
- 5
- Обновлён
- 11 сентября 202611 сент.
- Опубликован
- в 2026
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
X4UI Framework
Современный, высокопроизводительный объектно-ориентированный GUI-фреймворк для Minecraft Forge 1.12.2.
🇬🇧 Английский
### О X4UI Надоело возиться с захардкоженными координатами, громоздкими переопределениямиdrawScreen и бесконечными багами в архаичной системе GUI Vanilla Minecraft 1.12.2? X4UI — это самостоятельный, гибкий и динамичный фреймворк пользовательского интерфейса, выделенный из Hammers Unbound. Он привносит современные веб-подобные парадигмы разработки (такие как FlexBox-вёрстка, древовидные DOM-структуры и всплытие событий) прямо в Forge 1.12.2. ### Когда стоит использовать X4UI? X4UI стоит использовать, если вы создаёте: - Интерактивные руководства или мануалы: Нужно отрисовать форматированный текст? X4UI включает нативный парсер GuiMarkdown, который автоматически преобразует текст Markdown в красивые структурированные элементы интерфейса (заголовки, цитаты, списки и изображения). - RPG-деревья навыков и сложные меню: Вложенные панели, кнопки, переключатели и слайдеры обрабатываются автоматически. - Динамические инвентари / кастомные печи: GuiScrollPanel предоставляет готовое OpenGL-отсечение (GL_SCISSOR_TEST), позволяя создавать плавные прокручиваемые списки ингредиентов без отрисовки предметов за пределами области. Вложенные панели прокрутки автоматически пересекают свои области отсечения с помощью ScissorHelper. ### Ключевые особенности - DOM-архитектура: Стройте интерфейс, вкладывая компоненты друг в друга (rootPanel.addChild(new GuiButton(...))). - FlexBox-вёрстка: GuiPanel поддерживает автоматическое VERTICAL и HORIZONTAL размещение с отступами и промежутками. Больше никаких ручных расчётов для размещения элементов! - Высокая производительность (система Dirty Flag): Вёрстка пересчитывается только при физическом изменении компонента, что экономит массу ресурсов CPU и предотвращает просадки FPS даже на экранах с сотнями элементов. - Всплытие событий: Клики и прокрутка точно учитывают Z-порядок. Клик по перекрывающейся кнопке сработает на самой верхней и остановит дальнейшее распространение. - Микроанимации: Встроенная логика интерполяции (lerp) для плавных переходов при наведении и нажатии. Все анимации не зависят от FPS и масштабируются по delta-time, обеспечивая одинаковую скорость на любом железе. - Безопасность памяти (LRU-кэширование): Система FontWidthCache предотвращает утечки памяти при сложном парсинге текста (например, Markdown), ограничивая кэшированные строки с помощью автоматической политики вытеснения LRU. ### Установка (для разработчиков) Добавьте следующее в ваш build.gradle: ```gradle repositories { maven { url 'https://api.modrinth.com/maven' } }dependencies { // Замените r1.0b3 на актуальный тег релиза compile 'maven.modrinth:x4ui:r1.0b3' }
### Быстрый старт
Чтобы использовать X4UI, просто наследуйтесь от `GuiBaseScreen` вместо ванильного `GuiScreen`:
```java
public class MyCustomScreen extends GuiBaseScreen {
public MyCustomScreen() {
super(null, "My Title");
}
@Override
protected void initComponents() {
// rootPanel создаётся автоматически в GuiBaseScreen
rootPanel.setFlexDirection(FlexDirection.VERTICAL);
rootPanel.setGap(5);
GuiLabel titleLabel = new GuiLabel(0, 0, "HELLO X4UI!");
GuiButton closeButton = new GuiButton(0, 0, 100, 20, "Close", () -> this.closeScreen());
rootPanel.addChild(titleLabel);
rootPanel.addChild(closeButton);
}
}
- **Безопасность памяти (LRU-кэш):** Система `FontWidthCache` гарантирует, что анализ сложных текстов (например, Markdown) не вызывает утечек памяти, ограничивая кэшированные строки с помощью политики автоматической очистки LRU.
### Установка (для разработчиков)
Добавь следующее в свой `build.gradle`:
```gradle
repositories {
maven { url 'https://api.modrinth.com/maven' }
}
dependencies {
// Замени r1.0b3 на самую свежую версию
compile 'maven.modrinth:x4ui:r1.0b3'
}Быстрый старт
Чтобы использовать X4UI, просто наследуй GuiBaseScreen вместо классического GuiScreen из Vanilla:
public class MyCustomScreen extends GuiBaseScreen {
public MyCustomScreen() {
super(null, "Mi Título");
}
@Override
protected void initComponents() {
// rootPanel создаётся автоматически в GuiBaseScreen
rootPanel.setFlexDirection(FlexDirection.VERTICAL);
rootPanel.setGap(5);
GuiLabel titleLabel = new GuiLabel(0, 0, "HOLA X4UI!");
GuiButton closeButton = new GuiButton(0, 0, 100, 20, "Cerrar", () -> this.closeScreen());
rootPanel.addChild(titleLabel);
rootPanel.addChild(closeButton);
}
}Частые вопросы
Как установить x4UI?
Установите Forge под свою версию Minecraft, скачайте x4UI под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть x4UI?
У x4UI есть сборки для Minecraft 1.12.2.
Нужен ли x4UI на сервере?
Ставится только в игру; на сервер ставить не нужно