Мод «Master HUD» для Farming Simulator 25

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

Time Guard - часы. StateLedger - память. NetworkSync - нервная система. А MasterHUD - это глаза. Третий в порядке загрузки сервисный модуль экосистемы Realistic Farming, который отвечает за то, чтобы вся информация от всех экономических модов попадала на экран. Не каждый мод рисует своё, не каждый мод дёргает рендер в каждом кадре, не каждый мод борется за пиксели в углу экрана - нет. Один MasterHUD. Один цикл рисования. Одна точка контроля. Все остальные моды просто говорят ему: «Вот мои данные, покажи когда нужно».

Master HUD - это основа рендеринга пользовательского интерфейса в экосистеме Realistic Farming. Его смысл в том, чтобы вместо множества независимых, каждый по-своему рисующих оверлеев существовал единый цикл отрисовки, который обслуживает все моды сразу.

Работает он по так называемой модели «pull». Вместо того чтобы каждый мод заново перестраивал строки HUD в каждом кадре (что расточительно), сопутствующие моды просто выставляют флаг изменения, а Master HUD запрашивает у них свежие данные только тогда, когда те действительно поменялись. Такой подход заметно экономит ресурсы. Помимо этого мод берёт на себя приостановку отрисовки при открытых меню, размещение элементов по углам экрана и очистку при выгрузке - причём для всех подключённых модов одновременно.

Отдельно подчёркивается философия простоты: у мода нет никаких настроек, и настраивать в нём нечего. Его достаточно установить, оставить загруженным и позволить остальным модам им пользоваться.

Как им пользуются другие моды
Для разработчиков сопутствующих модов предусмотрено три способа регистрации, и все они защищены на случай отсутствия Master HUD. Первый - простой текстовый оверлей, который система сама отрисовывает и размещает в нужном углу; мод лишь сообщает, когда значения изменились. Второй - саморисующийся элемент, когда мод рисует собственное содержимое, а Master HUD управляет порядком отрисовки и приостановкой. Третий - интерактивная панель с поддержкой ввода мышью.

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

Режим подписки рассчитан на элементы, которые не вписываются в модель «текст в углу» - например, отрисовка в мировом пространстве: следы опрыскивания, сбора урожая или обработки почвы. Здесь мод рисует сам, а Master HUD лишь дирижирует порядком и паузами. Наконец, режим панели добавляет обработку ввода с мыши (и клавиатуры в резерве), а также опциональный фильтр adminOnly, благодаря которому панель видит и управляет ею только администратор сервера.

Приостановка и видимость
Одно из самых удобных решений - автоматическая пауза. Master HUD останавливает всю отрисовку и ввод, пока открыто любое меню или диалоговое окно, поэтому сопутствующим модам не нужно самим следить за состоянием меню - за них это делает система. Кроме того, отдельный элемент можно включить или выключить программно, что позволяет привязать его к горячей клавише или к меню настроек.

Диагностика
Для проверки предусмотрена консольная команда mhStatus, которая выводит список всех зарегистрированных оверлеев и панелей, а также текущее состояние приостановки - удобно, чтобы убедиться, что всё работает корректно.


Master HUD - это тот самый незаметный фундамент, без которого визуальная часть экосистемы Realistic Farming превратилась бы в хаос из конфликтующих наложений. Единый цикл отрисовки, экономная модель обновления данных «по требованию», автоматическая пауза при открытых меню и гибкие способы регистрации для других модов делают его надёжной и продуманной основой. Для игрока он полностью прозрачен - ставится один раз и работает без вмешательства, - а всю пользу от него получают сопутствующие моды, которые благодаря ему рисуют свои интерфейсы слаженно и без лишней нагрузки на систему. Обязательный компонент для сборки на базе Realistic Farming.