NRF SDK 0.9

Lire et agir

Lire et changer l’heure simulée

Distinguer heure de la partie, durée écoulée et horloge réelle, puis appliquer un changement explicite.

Lire l’heure utile au calcul

Dans une application JVM connectée, game.clock.read() fournit une SimulationClock nullable sans demander la carte complète. Utilisez clock.toInstant() pour la date UTC. Si un lot est déjà disponible, snapshot.clock évite une lecture supplémentaire et conserve l’heure associée à ce lot.

TempsUsage
SimulationClock.toInstant()Date simulée ; l’origine peut être antérieure à 1970.
SimulationClock.ticksDurée simulée depuis l’origine, en centièmes de seconde.
capturedAtMillisDate réelle de capture selon l’ordinateur, en millisecondes UTC.
Délai d’actualisation de l’interfaceCadence réelle choisie par votre application ; indépendante de la vitesse de jeu.

Une pause immobilise le temps simulé sans immobiliser le temps réel. L’accélération change leur rapport. Pour les animations et décisions de mod, employez le temps simulé approprié au callback ; pour limiter la fréquence d’un écran externe, employez une durée réelle monotone.

Choisir les effets avant de confirmer

ModeEffet
recalculateTrains = falseTranslate la date en conservant positions et délais relatifs.
recalculateTrains = trueDemande aussi le recalcul du jeu ; des déplacements et des coûts peuvent en résulter.
Fragment JVM : à exécuter après confirmation de la date et du mode
val chosenUtc = Instant.parse("2030-05-12T14:30:00Z")
val result = game.clock.set(chosenUtc, recalculateTrains = false)
println(result.clock.toInstant())
println(result.interventions)

La date demandée est un Instant UTC en secondes entières : nano doit valoir zéro. La fraction de seconde de la simulation est conservée ; l’heure retournée n’est donc pas nécessairement pile sur la seconde demandée. interventions indique le nombre d’interventions du recalcul, pas un nombre de trains lus.