Мод «Time Guard» для Farming Simulator 25

Time Guard главная картинка
Есть моды, которые видны сразу - новый трактор, красивая карта, производство. А есть те, что работают глубоко под капотом и незаметны на первый взгляд, но без них вся система рассыпалась бы. Time Guard относится ко второй категории: это технический фундамент для экосистемы модификаций Realistic Farming, отвечающий за управление экономическим временем. Мод сугубо утилитарный, но для тех, кто строит серьёзную реалистичную ферму, - крайне важный.

Место в экосистеме
Time Guard - это общий модуль управления экономическим временем и, по сути, пятый ключевой сервис в связке Realistic Farming, наряду со StateLedger, NetworkSync, MasterHUD и SettingsHub. То есть речь о базовой инфраструктуре, на которую опираются остальные дополнения.

Какую проблему он решает
Чтобы понять ценность мода, стоит взглянуть на то, как всё работало раньше. Каждый экономический мод - будь то IncomeMod, TaxMod, WorkerCosts, FuelCosts, MarketDynamics или RandomWorldEvents - использовал собственный детектор смены дня или месяца, работавший вне цикла кадров. При этом лишь один из них учитывал настройку «количество дней в месяце», а методы начисления между собой не были согласованы. Получался разнобой, чреватый несостыковками в экономике.

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

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

Безопасность денег
Отдельно стоит подчеркнуть важный принцип: Time Guard никогда сам не записывает деньги. Это именно планировщик, а не механизм перемещения средств. В момент расчёта он лишь вызывает обратный вызов владеющего мода - один раз, на стороне сервера, идемпотентно, - а уже сам мод выполняет запись денег, авторитетную на сервере. Иными словами, Time Guard управляет частотой (когда перемещаются деньги и гарантией того, что это произойдёт лишь однажды), но никогда не решает, какую именно сумму двигать. Такое разделение ответственности снижает риск ошибок и злоупотреблений.

Мультиплеер и команды
В сетевой игре всё построено грамотно: все расчёты выполняются исключительно на сервере. Клиенты до получения снимка от NetworkSync считывают контекст с пометкой о несинхронизированности, а тики могут срабатывать на стороне клиента лишь для отображения - но сами расчёты на клиенте не производятся никогда. Это гарантирует, что экономика остаётся единой и защищённой от рассинхрона.

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

Приятная деталь: мод не зависит от Precision Farming.


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