Brapi
Быстрая библиотека отрисовки интерфейса для модов Fabric. Скругление углов, градиенты, текстуры и текст.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 277
- Подписчиков на Modrinth
- 5
- версии
- 4
- Обновлён
- 11 августа 202611 авг.
- Опубликован
- в 2026
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
Brapi
Библиотека отрисовки интерфейса для модов на Fabric. Поддерживает скруглённые прямоугольники, текст, градиенты, текстуры и 9-slice спрайты с простым API. В будущем — поддержка растеризатора SVG, теней, дополнительных настроек текста, переключаемого immediate mode рендеринга и линий.
Зачем
Делать красивые интерфейсы в Minecraft сложнее, чем должно быть. Ванильные инструменты неплохо справляются с простыми прямоугольниками, но как только хочется плавных скруглённых углов, кругов или приятного текста — упираешься в стену. Обычно есть два варианта:
- Подключить тяжёлую графическую библиотеку вроде Skia, которую сложно настроить с первого раза и которая сильно раздувает размер мода
- Писать собственные шейдеры с нуля — а это лишняя настройка и шаблонный код, который большинство моддеров предпочли бы пропустить Brapi даёт третий вариант. Это лёгкий слой поверх существующей системы рендеринга Minecraft, так что ты получаешь красивую картинку без боли. Ключевые преимущества:
- Никакого шаблонного кода: без возни с настройкой. Просто создай BRender, добавь вызовы отрисовки и сделай flush.
- Сложные фигуры — просто: рисуй круги, контуры и скруглённые прямоугольники (даже с разными радиусами углов) одной строкой кода.
- Автоматическая батчинг и слои: Brapi сам определяет правильный порядок отрисовки, так что интерфейс выглядит как надо без ручного управления.
📦 Установка
Добавление в качестве зависимости Добавь репозиторий и зависимость в build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
filter {
includeGroup "maven.modrinth"
}
}
}
dependencies {
modImplementation "maven.modrinth:brapi:0.26+${minecraft_version}+fabric" // only supported minecraft version is 1.21.11 right now
}fabric.mod.json:
"depends": {
"brapi": "*"
}Использование в коде
Создай экземпляр BRender, добавь вызовы отрисовки, затем вызови flush(graphics) для отправки. Всё рендерится в конце кадра с сортировкой по слоям. 🎨 Все цвета в формате ARGB: 0xFFFF0000 = непрозрачный красный, 0x80FF0000 = красный с прозрачностью 50%.
📐 Координаты в единицах GuiScale: (100, 100) при масштабе 3 = (300, 300) пикселей.
Заливка фигур
bRender.rect(100, 100, 100, 100, 0xFFFF0000, layer);— красный прямоугольник 100x100bRender.roundRect(100, 100, 100, 100, 0xFFFF0000, 10, layer);— скруглённый прямоугольник, радиус 10pxbRender.roundRect(100, 100, 100, 100, 0xFFFF0000, 10, 5, layer);— 10px верхний левый/нижний правый, 5px верхний правый/нижний левыйbRender.roundRect(100, 100, 100, 100, 0xFFFF0000, 10, 5, 20, 30, layer);— индивидуальные радиусы угловbRender.circle(100, 100, 50, 0xFFFF0000, layer);— круг, радиус 50px
Градиенты
Все залитые фигуры поддерживают градиенты через Gradient и GradientDirection:
bRender.roundRect(100, 100, 100, 100, gradient, GradientDirection.LEFT_RIGHT, 10, layer);Направления:LEFT_RIGHT,TOP_BOTTOM,TOP_LEFT_BOTTOM_RIGHT,TOP_RIGHT_BOTTOM_LEFT
Контуры (только обводка)
bRender.stroke(100, 100, 100, 100, 0xFFFF0000, 2, layer);— контур прямоугольника 2pxbRender.strokeRounded(100, 100, 100, 100, 0xFFFF0000, 10, 2, layer);— скруглённый контур 2px, радиус 10pxbRender.strokeRounded(100, 100, 100, 100, 0xFFFF0000, 10, 5, 2, layer);— 10px верхний левый/нижний правый, 5px верхний правый/нижний левыйbRender.strokeRounded(100, 100, 100, 100, 0xFFFF0000, 10, 5, 20, 30, 2, layer);— индивидуальные радиусы
Заливка + контур
bRender.roundRectStroked(100, 100, 100, 100, 0xFF0000FF, 0xFFFF0000, 10, 2, layer);— синяя заливка, красный контур 2px
Текст
bRender.drawText(font, "Hello!", 100, 100, 24, 0xFFFFFFFF, layer);— текст BFontbRender.drawText(font, formattedCharSequence, 100, 100, 24, 0xFFFFFFFF, layer);— форматированный текст с цветами по символам
Текстуры
bRender.drawTexture(tex, 100, 100, 200, 150, 0xFFFFFFFF, linear, layer);— растянуть на всю областьbRender.drawTextureCropped(tex, 100, 100, 64, 64, 0, 0, 32, 32, 0xFFFFFFFF, linear, layer);— обрезкаbRender.drawTextureTiled(tex, 100, 100, 200, 200, 0xFFFFFFFF, linear, layer);— тайлингbRender.drawTexture9Slice(slice, 100, 100, 300, 200, 0xFFFFFFFF, linear, layer);— 9-slice
🔄 Flush
BRender r = new BRender();
r.roundRect(...);
r.flush(graphics); // submit to draw list
//OR
r.flush(graphics, BRender.WithOffset(100, 100)); // with 100 pixel offsetЧастые вопросы
Как установить Brapi?
Установите Fabric под свою версию Minecraft, скачайте Brapi под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Brapi?
У Brapi есть сборки для Minecraft 1.21.11.
Нужен ли Brapi на сервере?
Ставится только в игру; на сервер ставить не нужно