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

Pane

GUI-библиотека для Fabric и NeoForge: накладывай окна инструментов поверх запущенной игры, модальные экраны, 21 виджет, двусторонняя привязка данных и CSS-подобные темы — всё рендерится через собственный конвейер Minecraft. Без нативных библиотек, без конфликтов.

FabricNeoForge
Загрузчики
FabricNeoForge
Скачиваний на Modrinth
453
Подписчиков на Modrinth
8
версия
41
Обновлён
26 августа 202626 авг.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру

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

Библиотека — нужна другим модам
Работает на Fabric и NeoForge
Для Minecraft 1.21–26.2
Нужен в игре; на сервере — по желанию
Последняя версия — 0.4.0+mc26.2 от 26 августа 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа серверенеобязателен

Нужен в игре; на сервере — по желанию

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

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 на сервере?

Нужен в игре; на сервере — по желанию

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

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