Timeline

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.
Toast quotidien dans le jeu avec ornements visibles.

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 000
  • daysPerMonth : configurable (1..365)
  • monthNames : liste configurable (>= 1 mois)

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 :

  • monthNames
  • monthAbbreviations (MonthName=Abbrev lignes)
  • yearSuffix
  • daysPerMonth
  • useCustomFont
  • useSereneSeasons
  • seasonMonths
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 :

  • VANILLA
  • GOTHIC12
  • GOTHIC24

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.

Retour en haut