Omni Ocular: выводим скрытые NBT-данные прямо в Waila HUD
Любите копаться в технических деталях блоков и сущностей? Хотите видеть таймеры печей, владельцев черепов или оставшееся время до размножения овец прямо в интерфейсе Waila? Мод Omni Ocular создан именно для таких энтузиастов. Это прямой наследник WailaNBT, полностью переписанный и дополненный гибкой системой конфигурации на XML с JavaScript. С ним вы сможете настроить отображение любых NBT-тегов, которые только существуют в игре.
Что такое Omni Ocular и зачем он нужен
Omni Ocular расширяет стандартный HUD мода Waila, добавляя в него кастомные строки с информацией, определяемой игроком. По умолчанию мод уже показывает базовые данные, но настоящая сила раскрывается через конфигурационные файлы. Вы сами решаете, какие именно NBT-теги выводить для тайл-энтати, мобов или даже для предметов при наведении курсора. Это незаменимый инструмент для тестировщиков модов, строителей сложных механизмов и просто любителей точных цифр.
Установка и зависимости
Для работы Omni Ocular обязательно нужны Not Enough Items и Waila — причём на обеих сторонах: клиентской и серверной. Скачайте jar-файл мода с официальной страницы и поместите его в папку mods. Если вы пользуетесь сборками, не забудьте добавить его и на сервер, иначе конфигурация не будет синхронизироваться. Кстати, значительно упростить процесс способен лаунчер foxygame.net — удобный, гибкий и современный лаунчер для Minecraft, где можно скачать моды прямо из меню и автоматически разместить их в нужной директории. Это избавляет от ручного копирования и путаницы с версиями.
Для глубокой настройки крайне рекомендую установить NBTEdit (версия для 1.7.10 доступна отдельно). Он позволяет в реальном времени просматривать структуру NBT любого блока или сущности, что невероятно помогает при написании собственных конфигов.
Первое знакомство: что вы увидите сразу
Сразу после установки Omni Ocular уже работает «из коробки». Никаких дополнительных действий не требуется — просто запустите игру, и в интерфейсе Waila появятся дополнительные строки для поддерживаемых объектов. Например, у печи отобразится оставшееся время горения, а у сундука — имена предметов. Это обеспечивается встроенными предварительными конфигурациями, которые автоматически распаковываются в папку minecraft/config/OmniOcular при первом запуске.
Настройка через XML-конфиги: безграничная гибкость
Сердце мода — XML-файлы с вкраплениями JavaScript. Они лежат в упомянутой папке, и каждый файл отвечает за определённый мод или группу объектов. Формат строгий, но интуитивно понятный. Рассмотрим простой пример:
<!--Автор: EpixZhang-->
<!--Дата: 2015/1/1-->
<!--Версия: 1.0-->
<oo>
<init>
function tick2second(n){return n/20}
</init>
<tileentity id="Furnace">
<line displayname="Время горения">
return tick2second(nbt['BurnTime'])
</line>
</tileentity>
</oo>
Здесь мы определили функцию перевода тиков в секунды, а затем для тайл-энтати с id «Furnace» вывели строку с названием «Время горения». Внутри тега <line> пишется JavaScript-выражение, результат которого и попадёт в HUD. Переменная nbt содержит все NBT-данные объекта в виде JSON, что позволяет обращаться к любому тегу через квадратные скобки.
Типы узлов конфигурации
- <tileentity> — для блоков-хранилищ данных (печи, механизмы, сундуки). Атрибут
idзадаёт регулярное выражение для сопоставления с идентификатором тайла. - <entity> — для мобов и других существ. Работает аналогично, id — это регистрируемое имя сущности.
- <tooltip> — для всплывающих подсказок при наведении на предмет. Удобно показывать скрытые свойства, например владельца черепа.
- <init> — блок инициализации, где можно объявить общие функции и переменные.
Игровые команды для управления
Omni Ocular добавляет три полезные команды, доступные операторам на сервере:
- /oor — перезагружает все XML-конфиги. На сервере обновляет настройки и рассылает их всем игрокам. Имя выполнившего команду логируется.
- /ooe — показывает регистрируемое имя сущности, на которую вы смотрите. Бесценно при написании конфигов для мобов.
- /oon — выводит регистрируемое имя предмета в вашей руке. Помогает быстро найти id для tooltip-узлов.
Использование NBTEdit для исследования данных
Чтобы узнать, какие именно NBT-теги скрывает объект, наведите на него курсор и выполните команду /nbtedit (если установлен соответствующий мод). Откроется графический интерфейс, показывающий полную структуру. Например, для печи вы увидите BurnTime, CookTime, координаты и массив предметов. Именно эти ключи вы будете использовать в своих конфигах как nbt['BurnTime'].
Продвинутые возможности: цвета, выравнивание и встроенные функции
В возвращаемом значении можно использовать коды форматирования Minecraft, а также специальные константы, определённые в моде: WHITE, GOLD, BOLD, TAB, ALIGNRIGHT и другие. Например, чтобы вывести строку с цветным значением справа, напишите:
<line displayname="">
return "Foo" + TAB + ALIGNRIGHT + WHITE + "bar"
</line>
Встроенные JavaScript-функции облегчают жизнь: translate(string) для локализации, name(object) для получения кастомного имени предмета (включая переименование на наковальне), fluidName(string) для названий жидкостей, а также функции проверки инвентаря isInHotbar(string) и isInInv(string).
Серверная и клиентская стороны: важные нюансы
На клиенте конфиги загружаются из папки config/OmniOcular, причём предварительные файлы создаются автоматически, но существующие не перезаписываются. Если вы обновили мод и хотите получить новые преднастройки, старые файлы придётся удалить вручную. На сервере предварительные конфиги не генерируются — их нужно подготовить в одиночной игре и скопировать. В многопользовательском режиме серверные настройки имеют приоритет: все клиентские конфиги игнорируются, а данные синхронизируются с сервера. Это гарантирует, что никто не сможет подсмотреть защищённые NBT-данные через собственный хитрый конфиг.
Заключение
Omni Ocular — это мощный и при этом удивительно настраиваемый инструмент для всех, кто хочет видеть больше, чем показывает стандартный Waila. Благодаря поддержке JavaScript и регулярных выражений вы можете создать информативные панели для любых модификаций. А с лаунчером foxygame.net установка превращается в пару кликов, позволяя сразу погрузиться в изучение скрытых параметров игрового мира. Попробуйте — и ваши технические постройки заиграют новыми красками точных цифр.