Date System
Die Zeitleiste ersetzt das Gefühl eines reinen Tageszählers durch einen konfigurierbaren Kalender und einen täglichen Datumstoast auf dem Bildschirm.
TLDR
- Der Toast erscheint, wenn der Client einen neuen Spieltag erkennt.
- Die Kalenderberechnung basiert auf Servereinstellungen (Monatsnamen, Abkürzungen, Jahressuffix, Tage pro Monat).
- Die angezeigten Jahre basieren im UI-Text auf 1 (
Year 1,Year 2, ...). - Einstellungen werden vom Server mit den Clients synchronisiert und können während der Laufzeit aktualisiert werden.

Wie das Datum berechnet wird
Timeline wandelt die Weltspielzeit in einen Tagesindex um und ordnet diesen dann zu:
- Tag des Monats
- Monatsindex/-name
- Anzeigejahr
Kernkonstanten/Eingaben:
ticksPerDay: 24000daysPerMonth: konfigurierbar (1..365)monthNames: konfigurierbare Liste (>= 1Monat)
Das endgültige benutzerorientierte Format verwendet die Lokalisierung mit dieser Form:
Day <n> of <Month>, <Year> <Suffix>
Kalenderkonfiguration (Server)
Wichtige serverseitige Optionen unter calendar:
monthNamesmonthAbbreviations(MonthName=AbbrevZeilen)yearSuffixdaysPerMonthuseCustomFontuseSereneSeasonsseasonMonths
DEEP DIVE: Abkürzung Fallback
Wenn Monatsabkürzungen fehlen oder ungültig sind, greift Timeline auf die ersten drei Buchstaben jedes Monatsnamens zurück.
Toast-Schriftart (Client)
Client-Konfiguration unterstützt:
VANILLAGOTHIC12GOTHIC24
Dadurch ändert sich nur die Darstellung, nicht die zugrunde liegende Datumsberechnung.
Synchronisierungs- und Hot-Reload-Verhalten
- Der Server hasht regelmäßig aktive Kalendereinstellungen.
- Wenn sich der Hash ändert, werden aktualisierte Einstellungen an verbundene Player gesendet.
- Client-Caches werden durch die neue Definition ersetzt und sofort zum Rendern verwendet.
Nuance des Anzeigejahres
Die interne Kalenderberechnung hat in einigen Klassen 0-basierte Wurzeln, aber UI/API-Datumsmeldungen zeigen Jahre absichtlich als 1-basiert an (yearIndex + 1).
Dieses Projekt unterstutzen
Gefallt dir dieses Wiki und diese Mods?
Jede Unterstutzung hilft mir, neue Features zu bauen, Dokus zu schreiben und Updates zu liefern.