Date System
时间轴用可配置的日历和每日屏幕上的日期提示取代了原始日计数器的感觉。
TLDR
- 当客户端检测到新的游戏日时,就会出现吐司。
- 日历数学基于服务器设置(月份名称、缩写、年份后缀、每月天数)。
- UI 文本中显示的年份从 1 开始(
Year 1、Year 2、...)。 - 设置从服务器同步到客户端,并且可以在运行时更新。

日期是如何计算的
时间轴将世界游戏时间转换为一天索引,然后将其映射到:
- 一个月中的哪一天
- 月份索引/名称
- 显示年份
核心常数/输入:
ticksPerDay: 24000daysPerMonth:可配置(1..365)monthNames:可配置列表(>= 1月)
最终面向用户的格式使用以下形状的本地化:
Day <n> of <Month>, <Year> <Suffix>
日历配置(服务器)
calendar下的关键服务器端选项:
monthNamesmonthAbbreviations(MonthName=Abbrev行)yearSuffixdaysPerMonthuseCustomFontuseSereneSeasonsseasonMonths
DEEP DIVE:缩写后备
如果月份缩写丢失或无效,时间轴将回退到每个月份名称的前 3 个字母。
Toast 字体(客户端)
客户端配置支持:
VANILLAGOTHIC12GOTHIC24
这只会改变表示方式,而不改变底层的日期数学。
同步和热重载行为
- 服务器定期散列活动日历设置。
- 如果哈希发生变化,它会将更新的设置广播给连接的玩家。
- 客户端缓存被新定义替换并立即用于渲染。
显示年份的细微差别
内部日历数学在某些类中具有从 0 开始的根,但 UI/API 日期消息有意将年份显示为从 1 开始的 (yearIndex + 1)。
支持这个项目
喜欢这个 Wiki 和这些模组吗?
你的每一份支持都能帮助我持续开发新功能、完善文档并发布更新。