Date System
Timeline remplace la sensation d'un compteur journalier brut par un calendrier configurable et un toast quotidien à l'écran.
TLDR
- Le toast apparaît lorsque le client détecte un nouveau jour de jeu.
- Les calculs du calendrier sont basés sur les paramètres du serveur (noms des mois, abréviations, suffixe de l'année, jours par mois).
- Les années affichées sont basées sur 1 dans le texte de l'interface utilisateur (
Year 1,Year 2, ...). - Les paramètres sont synchronisés du serveur vers les clients et peuvent être mis à jour pendant l'exécution.

Comment la date est calculée
La chronologie convertit le temps de jeu mondial en un index journalier, puis le mappe à :
- jour du mois
- index/nom du mois
- année d'affichage
Constantes/entrées de base :
ticksPerDay: 24 000daysPerMonth: configurable (1..365)monthNames: liste configurable (>= 1mois)
Le format final destiné à l'utilisateur utilise la localisation avec cette forme :
Day <n> of <Month>, <Year> <Suffix>
Configuration du calendrier (serveur)
Options clés côté serveur sous calendar :
monthNamesmonthAbbreviations(MonthName=Abbrevlignes)yearSuffixdaysPerMonthuseCustomFontuseSereneSeasonsseasonMonths
DEEP DIVE : solution de secours pour les abréviations
Si les abréviations de mois sont manquantes ou invalides, Timeline revient aux 3 premières lettres du nom de chaque mois.
Police Toast (Client)
La configuration client prend en charge :
VANILLAGOTHIC12GOTHIC24
Cela ne change que la présentation, pas les calculs de date sous-jacents.
Comportement de synchronisation et de rechargement à chaud
- Le serveur hache périodiquement les paramètres du calendrier actif.
- Si le hachage change, il diffuse les paramètres mis à jour aux lecteurs connectés.
- Les caches clients sont remplacés par la nouvelle définition et utilisés immédiatement pour le rendu.
Nuance de l'année d'affichage
Les mathématiques du calendrier interne ont des racines de base 0 dans certaines classes, mais les messages de date de l'interface utilisateur/API affichent intentionnellement les années en base 1 (yearIndex + 1).
Soutenir ce projet
Vous aimez ce wiki et ces mods ?
Chaque soutien m'aide a continuer a creer des fonctionnalites, ecrire la documentation et publier des mises a jour.