Timeline

Date System

Временная шкала заменяет ощущение простого счетчика дней на настраиваемый календарь и ежедневный тост о дате на экране.

TLDR
  • Тост появляется, когда клиент обнаруживает новый игровой день.
  • Математика календаря основана на настройках сервера (названия месяцев, сокращения, суффикс года, дни в месяце).
  • Отображаемые годы в тексте пользовательского интерфейса отсчитываются от 1 (Year 1, Year 2, ...).
  • Настройки синхронизируются с сервера на клиенты и могут обновляться во время выполнения.
Тост за ежедневную дату в игре с видимыми орнаментами.

Как вычисляется дата

Временная шкала преобразует мировое игровое время в индекс дня, а затем отображает его следующим образом:

  • день месяца
  • индекс/название месяца
  • год отображения

Основные константы/входные данные:

  • ticksPerDay: 24000
  • daysPerMonth: настраивается (1..365)
  • monthNames: настраиваемый список (>= 1 месяц)

В окончательном формате, ориентированном на пользователя, используется локализация следующей формы:

Day <n> of <Month>, <Year> <Suffix>

Конфигурация календаря (сервер)

Ключевые параметры на стороне сервера в разделе calendar:

  • monthNames
  • monthAbbreviations (MonthName=Abbrev строк)
  • yearSuffix
  • daysPerMonth
  • useCustomFont
  • useSereneSeasons
  • seasonMonths
ГЛУБОКОЕ ПОГРУЖЕНИЕ: запасной вариант сокращения

Если сокращения месяцев отсутствуют или недействительны, временная шкала возвращается к первым трем буквам названия каждого месяца.

Шрифт Toast (клиент)

Конфигурация клиента поддерживает:

  • VANILLA
  • GOTHIC12
  • GOTHIC24

Это меняет только представление, а не базовую математику даты.

Синхронизация и горячая перезагрузка

  • Сервер периодически хэширует настройки активного календаря.
  • Если хеш изменится, обновленные настройки будут переданы подключенным игрокам.
  • Клиентские кеши заменяются новым определением и немедленно используются для рендеринга.
Нюанс отображения года

В некоторых классах математические вычисления внутреннего календаря имеют корни, отсчитываемые от 0, но сообщения о дате UI/API намеренно отображают годы как отсчет от 1 (yearIndex + 1).

Поддержать проект

Нравится эта вики и эти моды?

Любая поддержка помогает мне развивать функции, писать документацию и выпускать обновления.

Наверх