Pane
GUI-библиотека для Fabric и NeoForge: накладывай окна инструментов поверх запущенной игры, модальные экраны, 21 виджет, двусторонняя привязка данных и CSS-подобные темы — всё рендерится через собственный конвейер Minecraft. Без нативных библиотек, без конфликтов.
- Загрузчики
- FabricNeoForge
- Скачиваний на Modrinth
- 453
- Подписчиков на Modrinth
- 8
- версия
- 41
- Обновлён
- 26 августа 202626 авг.
- Опубликован
- в 2026
Коротко о моде
Нужен в игре; на сервере — по желанию
Pane
Pane — это библиотека GUI для Fabric и NeoForge. Я сделал её, потому что мне нужны были нормальные инструментальные окна для моего редактора освещения, а всё, что было доступно, либо тянуло нативные библиотеки, либо конфликтовало с другими UI-модами. Pane рисует всё через собственный DrawContext Minecraft, так что конфликтовать не с чем. Он ежедневно работает в сборке из 150 модов рядом с Axiom, Flashback, Sodium и Iris без проблем.
Что он делает
Есть два способа вывести интерфейс на экран. Оверлейные окна парят над игрой, пока она продолжает работать. Они перетаскиваются за заголовок, изменяются в размере с любого края и прокручиваются, когда содержимое не помещается. Нажмите клавишу (по умолчанию P), чтобы освободить мышь, кликните по миру, чтобы вернуться к игре. Это режим, созданный для инструментов в стиле редакторов. Экраны — это обычные модальные меню, собранные из тех же виджетов и размещённые в ванильном Screen, так что они открываются, закрываются и ставят игру на паузу точно так же, как любое другое меню в игре.
Виджеты
Кнопки, чекбоксы, слайдеры, выпадающие списки, текстовые поля с копированием и вставкой, числовые поля, которые можно перетаскивать для изменения значения, выбор цвета, полосы прогресса, вкладки, контейнеры с прокруткой, таблицы, списки с множественным выбором и перетаскиванием для изменения порядка, захват клавиш, контекстные меню по правому клику, диалоги подтверждения и всплывающие уведомления. Всего 21, и все создаются одинаково:
Window win = Window.of("My Tool").at(40, 40);
win.add(Label.of("Target"));
win.add(TextInput.of(name));
win.add(Slider.of(speed, 0f, 2f));
win.add(Button.of("Apply").onClick(() -> apply()));
PaneOverlay.addWindow(win);Привязка данных
Виджеты привязываются к объектам `State`. Виджет записывает в состояние, ваш код читает его, а установка значения из кода обновляет виджет. Привяжите одно состояние к слайдеру и числовому полю — и они будут синхронизироваться сами:
State<Float> radius = State.of(16f);
Slider.of(radius, 0f, 256f);
NumberField.of(radius, 0f, 256f);
radius.onChange(v -> sendToServer(v));Разметка и стилизация
Если вы предпочитаете не строить большие макеты на Java, есть PML для структуры и PSS для стилизации. PSS работает как CSS: селекторы по типу, классу и id с обычной специфичностью, и вы можете перезагрузить таблицу стилей во время выполнения, чтобы изменить оформление без перекомпиляции.
button { bg: #292A31; padding: 3; }
.warn { fg: #FF5555; }
#saveBtn { border-color: #4FA3FF; }Темы
Каждый виджет рисуется из набора восьми цветовых токенов. С модом поставляются три темы: Studio (тёмная, по умолчанию), Paper (светлая) и Vanilla (совпадает с меню самой игры). Своя тема — это просто запись с вашими цветами.
Настройки по умолчанию
Перетаскивание окон, изменение размера, привязка к экрану, курсоры изменения размера и прокрутка при переполнении включены из коробки. Если другой мод освобождает курсор (редактор повторов Flashback, Axiom), окна Pane остаются кликабельными, а клики в любом другом месте по-прежнему уходят тому моду. У каждой настройки есть переключатель, если она вам не нужна, например .draggable(false) или PaneOverlay.setCursorShapes(false).
Для разработчиков
Добавьте jar в среду разработки и укажите зависимость на pane в вашем fabric.mod.json или neoforge.mods.toml:
repositories {
exclusiveContent {
forRepository { maven { url = "https://api.modrinth.com/maven" } }
filter { includeGroup "maven.modrinth" }
}
}
dependencies {
modImplementation "maven.modrinth:pane:<version>" // e.g. 0.4.0+1.21.11-fabric
// add `include` in front to bundle Pane inside your jar, so players
// don't install it separately:
// include modImplementation("maven.modrinth:pane:<version>")
}API одинаков на обоих загрузчиках, так что переключение не затрагивает ваш код. Документация (начало работы, каталог виджетов, привязка, справочник по PML/PSS) находится в вики Pane.
Pane обеспечивает работу всего редактора в Luminary, моём инструменте для сценического освещения: три инструментальных окна, таймлайн ключевых кадров и холст для рисования, всё работает в реальном времени поверх игры. Именно там он и тестируется.
Частые вопросы
Как установить Pane?
Установите Fabric под свою версию Minecraft, скачайте Pane под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Pane?
У Pane есть сборки для Minecraft 1.21–26.2.
Нужен ли Pane на сервере?
Нужен в игре; на сервере — по желанию