Перейти к содержимому

x4UI

Это UI-фреймворк для моих модов.

Forge
Загрузчики
Forge
Скачиваний на Modrinth
97
Подписчиков на Modrinth
1
версий
5
Обновлён
11 сентября 202611 сент.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игруНужна 1 модам. Скачайте её, если этого требует другой мод.

Коротко о моде

Библиотека — нужна другим модам: её требуют 1
Работает на Forge
Для Minecraft 1.12.2
Ставится только в игру; на сервер ставить не нужно
Последняя версия — r1.0b5 от 11 сентября 2026
Лицензия GPL-3.0-only — бесплатно
Где нужен
В игреобязателенНа серверене нужен

Ставится только в игру; на сервер ставить не нужно

Версии игры1.12.2
Описание переведено автоматическиПоказать оригинал (EN)

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 — открытый исходный код, доступный под лицензией GNU General Public License v3 (GPL-3.0).

Частые вопросы

Как установить x4UI?

Установите Forge под свою версию Minecraft, скачайте x4UI под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть x4UI?

У x4UI есть сборки для Minecraft 1.12.2.

Нужен ли x4UI на сервере?

Ставится только в игру; на сервер ставить не нужно

Лицензия и источник
GNU General Public License v3.0 onlyможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее