Omni Ocular: вывод скрытых NBT-тегов прямо в Waila HUD

Omni Ocular: выводим скрытые NBT-данные прямо в Waila HUD Любите копаться в технических деталях блоков и сущностей? Хотите видеть таймеры печей, владельцев черепов или оставшееся время до размножения овец прямо в интерфейсе Waila? Мод Omni Ocular создан именно для таких энтузиастов. Это прямой на...

Скачать OmniOcular для Minecraft 1.7.10

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

Версии Minecraft: 1.7.10

Загрузчик: Forge

ФайлВерсияЗагрузчикРазмер
OmniOcular-1.7.10-1.0build103.jar1.7.10Forge70 КБСкачать
OmniOcular-1.7.10-1.0-java8,17-20.jar1.7.10Forge69 КБСкачать

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 установка превращается в пару кликов, позволяя сразу погрузиться в изучение скрытых параметров игрового мира. Попробуйте — и ваши технические постройки заиграют новыми красками точных цифр.