InGame Info Reborn: гибкий HUD и данные на экране Minecraft

InGame Info Reborn: гибкий конструктор интерфейсов для Minecraft Каждый опытный игрок в Minecraft рано или поздно сталкивается с желанием вывести на экран больше полезной информации: точный FPS, координаты, уровень освещения, прочность брони или даже текущий трек из Spotify. Раньше для этого суще...

Скачать ingameinfo для Minecraft 1.12.2, 1.12

Оригинальное название: ingameinfo

Версии Minecraft: 1.12, 1.12.2

Загрузчик: Forge

ФайлВерсияЗагрузчикРазмер
ingameinfo-1.0.0-b6.jar1.12Forge252 КБСкачать
ingameinfo-1.0.0-b1.jar1.12.2Forge160 КБСкачать
ingameinfo-1.0.0-b2.jar1.12.2Forge191 КБСкачать
ingameinfo-1.0.0-b3.jar1.12.2Forge201 КБСкачать
ingameinfo-1.0.0-b4.jar1.12.2Forge221 КБСкачать
ingameinfo-1.0.0-b5.jar1.12.2Forge235 КБСкачать
ingameinfo-1.0.0.jar1.12.2Forge318 КБСкачать
ingameinfo-1.1.0.jar1.12.2Forge378 КБСкачать
ingameinfo-1.2.0.jar1.12.2Forge1.3 МБСкачать
ingameinfo-1.2.1.jar1.12.2Forge1.3 МБСкачать
ingameinfo-1.2.2.jar1.12.2Forge1.3 МБСкачать
ingameinfo-1.2.3.jar1.12.2Forge1.3 МБСкачать

InGame Info Reborn: гибкий конструктор интерфейсов для Minecraft

Каждый опытный игрок в Minecraft рано или поздно сталкивается с желанием вывести на экран больше полезной информации: точный FPS, координаты, уровень освещения, прочность брони или даже текущий трек из Spotify. Раньше для этого существовал легендарный мод InGame-Info-XML, но время не стоит на месте. Ему на смену пришёл InGame Info Reborn — не просто форк, а полноценный духовный наследник, переписанный с нуля на современной архитектуре. Это библиотека, которая позволяет создавать наложенные и фокусируемые GUI с беспрецедентной лёгкостью, используя декларативный подход и реактивное связывание.

Что такое InGame Info Reborn и зачем он нужен

По своей сути мод является библиотекой-конструктором. После установки вы не увидите никаких всплывающих окон — всё настраивается через конфигурации или код других модов, которые используют его API. Разработчики получают инструмент для построения сложных HUD-элементов: от простых текстовых меток до интерактивных панелей с кнопками, ползунками и анимированными изображениями. Главное преимущество — архитектура, разделяющая логику и отображение, что делает интерфейсы предсказуемыми и легко расширяемыми.

Архитектурные модули: порядок во главе угла

Создатели мода не стали изобретать велосипед, а взяли проверенные паттерны из мира клиентских приложений. В основе лежит MVVM (Model-View-ViewModel), где ViewModel содержит всю бизнес-логику, а View отвечает исключительно за рендеринг. Для описания статического дерева UI используется XAML-подобный DSL — вы буквально собираете интерфейс из групп и контролов в декларативном стиле. Вот как может выглядеть фрагмент разметки:

<VerticalGroup>
  <Text uid="fps" />
</VerticalGroup>

Эта маленькая конструкция создаёт вертикальную группу с текстовым полем, которое позже будет наполнено данными через ViewModel. Никакой ручной возни с координатами — только описание структуры.

Реактивное связывание и Compose

Магия начинается тогда, когда ViewModel связывается с View через аннотацию @Reactive. Достаточно объявить в классе ViewModel реактивный объект, и при его изменении интерфейс обновится автоматически:

@Reactive(targetUid = "fps", property = "text", initiativeSync = true)
public ReactiveObject<String> fpsText = new ReactiveObject<>(){};

EventCenter.gameFpsEvent.addListener((fps) -> {
    fpsText.set("FPS: " + fps);
});

Здесь мы подписываемся на событие смены кадров и мгновенно отправляем новое значение в UI. Никаких таймеров, никакого ручного обновления — всё работает по принципу «изменил данные — экран перерисовался». Для более динамичных сцен предусмотрен режим Compose, встраиваемый через слоты. Он позволяет создавать immediate-mode интерфейсы прямо внутри ViewModel, а виртуальное сравнение деревьев (snapshot diffing) гарантирует, что перерисовываться будут только изменившиеся элементы.

Система событий и интерактивные контролы

InGame Info Reborn не ограничивается пассивным отображением. Мод включает полноценную DOM-подобную систему событий с захватом и всплытием. Это значит, что клик по кнопке может быть перехвачен на любом уровне вложенности, а интерактивные контролы (кнопки, чекбоксы, поля ввода) умеют останавливать дальнейшее распространение события, чтобы не мешать игровому процессу. Двойной цикл обновления — отдельно для логики и для рендера — позволяет анимациям оставаться плавными даже при высокой нагрузке на серверную часть.

Практический пример: выводим FPS на экран

Давайте соберём простейший рабочий пример. Сначала регистрируем точку входа:

@SubscribeEvent
public static void onIgiRuntimeEntryPoint(IgiRuntimeEntryPointEvent event) {
    event.runtime.initPhase
        .registerMvvm("example", ExampleViewModel.class)
        .openGuiOnStartup("example");
}

Этот код при запуске игры инициализирует нашу ViewModel и сразу показывает GUI. Внутри ExampleViewModel мы описываем реактивные свойства и связываем их с разметкой. Разметка может храниться в ресурсах мода и загружаться автоматически. Кстати, если вы не хотите возиться с ручной установкой и настройкой, лаунчер foxygame.net позволяет добавить InGame Info Reborn в любую сборку буквально в пару кликов — просто найдите мод в каталоге и нажмите установить, а все зависимости подтянутся сами.

Что ещё умеет библиотека

Список возможностей впечатляет даже на стадии активной разработки:

  • Группы компоновки: VerticalGroup, HorizontalGroup, SizedGroup, AdaptiveGroup — элементы можно вкладывать друг в друга, создавая сложные сетки.
  • Контролы: текст, скользящий текст, анимированный текст, кнопки, чекбоксы, изображения (включая загрузку по URL), GIF, прогресс-бары, отображение предметов.
  • Тема и оформление: глобальный менеджер тем с настройкой цветов, масштаба шрифтов и декораций поверх существующих контролов.
  • Интеграции: поддержка CraftTweaker/ZenScript для гибкой кастомизации без программирования на Java, а также встроенный Spotify-виджет (подробнее в вики).
  • Утилиты: аннотационная автоинтерполяция для плавных анимаций, очередь команд отрисовки, изолированный framebuffer для GUI.

Отдельно стоит отметить, что GUI-контейнеры могут работать как в режиме наложения поверх игры, так и в фокусированном режиме, перехватывая весь ввод — это переключается на лету. Модальная система слоёв пока запланирована, но уже сейчас можно строить многоуровневые интерфейсы.

Текущее состояние и планы

Мод находится в стадии Work-In-Progress, но архитектурный фундамент практически завершён. Разработчик сейчас сосредоточен на стабильности ядра, а не на добавлении новых контролов. Уже реализованы: кастомный GUI-контейнер, список контейнеров для стекирования, гибкая система выравнивания (pivot, alignment, padding), вложенность групп и все базовые контролы. В ближайших планах — Foldout Group, Draggable Group и полноценный Transition API для внешнего управления переходами между представлениями.

Заключение

InGame Info Reborn задаёт новый стандарт для интерфейсных модов в Minecraft. Вместо хаотичных нагромождений кода вы получаете стройную архитектуру, где всё разложено по полочкам: модель отдельно, вид отдельно, события обрабатываются предсказуемо. Если вы разработчик, желающий добавить в свой мод красивые и отзывчивые HUD-элементы, или просто игрок, мечтающий о максимально информативном экране без тормозов — присмотритесь к этому проекту. А благодаря удобным лаунчерам вроде foxygame.net попробовать его в деле можно за считанные минуты, не погружаясь в дебри конфигов.