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.
| Temps | Usage |
|---|---|
| SimulationClock.toInstant() | Date simulée ; l’origine peut être antérieure à 1970. |
| SimulationClock.ticks | Durée simulée depuis l’origine, en centièmes de seconde. |
| capturedAtMillis | Date réelle de capture selon l’ordinateur, en millisecondes UTC. |
| Délai d’actualisation de l’interface | Cadence 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
| Mode | Effet |
|---|---|
| recalculateTrains = false | Translate la date en conservant positions et délais relatifs. |
| recalculateTrains = true | Demande aussi le recalcul du jeu ; des déplacements et des coûts peuvent en résulter. |
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.