Timeline

Date System

A linha do tempo substitui a sensação de um contador de dias bruto por um calendário configurável e um brinde diário de data na tela.

TLDR
  • O brinde aparece quando o cliente detecta um novo dia no jogo.
  • A matemática do calendário é baseada nas configurações do servidor (nomes dos meses, abreviações, sufixo do ano, dias por mês).
  • Os anos exibidos são baseados em 1 no texto da IU (Year 1, Year 2, ...).
  • As configurações são sincronizadas do servidor para os clientes e podem ser atualizadas durante o tempo de execução.
Brinde diário no jogo com enfeites visíveis.

Como a data é calculada

A linha do tempo converte o tempo mundial do jogo em um índice diário e, em seguida, mapeia-o para:

  • dia do mês
  • índice/nome do mês
  • ano de exibição

Constantes/entradas principais:

  • ticksPerDay: 24.000
  • daysPerMonth: configurável (1..365)
  • monthNames: lista configurável (>= 1 mês)

O formato final voltado para o usuário usa localização com esta forma:

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

Configuração de calendário (servidor)

Principais opções do lado do servidor em calendar:

  • monthNames
  • monthAbbreviations (MonthName=Abbrev linhas)
  • yearSuffix
  • daysPerMonth
  • useCustomFont
  • useSereneSeasons
  • seasonMonths
DEEP DIVE: abreviatura fallback

Se as abreviaturas dos meses estiverem faltando ou forem inválidas, a Linha do tempo volta para as três primeiras letras do nome de cada mês.

Fonte Toast (Cliente)

A configuração do cliente suporta:

  • VANILLA
  • GOTHIC12
  • GOTHIC24

Isso altera apenas a apresentação, não a matemática da data subjacente.

Comportamento de sincronização e recarga dinâmica

  • O servidor faz hash periodicamente das configurações do calendário ativo.
  • Se o hash mudar, ele transmite as configurações atualizadas para os jogadores conectados.
  • Os caches do cliente são substituídos pela nova definição e usados ​​imediatamente para renderização.
Nuance do ano de exibição

A matemática do calendário interno tem raízes baseadas em 0 em algumas classes, mas as mensagens de data da UI/API exibem intencionalmente os anos como baseados em 1 (yearIndex + 1).

Apoie este projeto

Gostou desta wiki e destes mods?

Cada apoio ajuda a continuar criando recursos, escrevendo documentacao e lancando atualizacoes.

Voltar ao topo