Référence
NimbyClient
Connexion, captures, lectures ciblées et commandes du client Kotlin/JVM.
Contexte d’utilisation
| Module | Package | Source SDK |
|---|---|---|
| Kotlin/JVM | fr.nimby.sdk | kotlin-client/src/main/kotlin/fr/nimby/sdk/NimbyClient.kt |
API publique du SDK 0.9.0-alpha.2. Chaque entrée donne la signature Kotlin et son contrat : sens de la valeur, conditions d’utilisation et effets à connaître. Choisissez les imports du module indiqué ci-dessus.
import fr.nimby.sdk.NimbyClient
import java.nio.file.PathNimbyClient
class NimbyClient : ObservationClientClient détaillé possédant une connexion ; préférer Game pour les usages courants. Les opérations de cette connexion sont sérialisées. Ouvrir via open et fermer avec use ; ne pas construire directement.
NimbyClient.Companion.open
fun open(libraryPath: Path, processId: Int): NimbyClientOuvre la bibliothèque SDK donnée pour un PID strictement positif et vérifie sa compatibilité. Ferme les ressources d’ouverture si la connexion échoue.
NimbyClient.readTrain
fun readTrain(trainId: Long): DrivingObservation?Lit uniquement le train demandé : position, vitesse mesurée et paramètres de conduite. null si absent ou instable ; les autres échecs lèvent une exception. Le résultat copié reste utilisable après fermeture.
NimbyClient.prepareConstruction
fun prepareConstruction(sourceSignal: Long): ConstructionResultPrépare une série à partir d’un signal source observé et retourne son ticket/état. N’ajoute pas de signal. Revalider le plan confirmé après préparation et avant création.
NimbyClient.createSignals
fun createSignals(token: Long, sourceSignal: Long, positions: List<Position>): ConstructionResultEnvoie une création unique avec un ticket préparé et 1 à 64 positions distinctes. Fractions strictement entre 0 et 1, sens -1 ou 1. Conserver le ticket et consulter poll après PENDING ou réponse incertaine ; ne pas répéter create.
NimbyClient.undoConstruction
fun undoConstruction(token: Long): ConstructionResultDemande une seule annulation de la série. Peut être refusée si une autre commande a remplacé la dernière opération annulable. Vérifier état et canUndo ; suivre une réponse incertaine avec poll.
NimbyClient.pollConstruction
fun pollConstruction(token: Long): ConstructionResultRelit l’état du ticket existant sans répéter sa création ou son annulation. Utiliser un ticket non nul de la même partie/session d’édition.
NimbyClient.readSimulationClock
fun readSimulationClock(): SimulationClock?Lit l’horloge du jeu sans demander les grandes tables de la carte avec le SDK courant. null si indisponible. Réutiliser snapshot.clock lorsqu’une capture existe déjà.
NimbyClient.capture
override fun capture(selectedTrainId: Long?): ObservationCapture les tables du réseau et les observations usuelles. Un train sélectionné ajoute son chemin et son plan de ligne ; il ne filtre pas la liste des trains. Les tables sont copiées sans garantir un tick atomique.
NimbyClient.captureTrainData
fun captureTrainData(selectedTrainId: Long? = null, query: TrainQuery = TrainQuery()): ObservationCapture spécialisée selon TrainQuery, sans topologie complète, signaux, occupations ni réservations. selectedTrain demande en plus son plan et les données de service/horaires ; la liste des trains reste un lot.
NimbyClient.setSimulationDateTime
fun setSimulationDateTime(utc: java.time.Instant, recalculateTrains: Boolean = false): SimulationTimeChangeChange explicitement la date UTC, en secondes entières. Conserve la fraction de seconde. recalculateTrains demande aussi le recalcul des trains, avec interventions possibles. En cas d’échec, relire avant toute nouvelle écriture.
NimbyClient.showSignalTextureFor
fun showSignalTextureFor(signal: Long, catalogue: String, path: String, durationMillis: Int): UnitAffiche l’image déclarée du catalogue pendant 1 000 à 60 000 ms. Identité de signal réelle et chemins non vides requis. Modifie l’apparence seule, jamais les règles ni permissions.
NimbyClient.restoreSignalTexture
fun restoreSignalTexture(signal: Long): UnitRetire le remplacement visuel temporaire demandé pour ce signal ; ne réécrit aucune règle du mod.
NimbyClient.modControl
fun modControl(modId: String, request: ControlRequest): ControlResponseEnvoie exactement une demande au mod nommé dans la partie connectée. Préférer Game.mods et ModControlSession qui portent l’identité du bail. Inspecter l’état après un échec avant de choisir une nouvelle mutation.
NimbyClient.acquireModControl
fun acquireModControl(modId: String, leaseMillis: Int = 5000): ModControlSessionAcquiert un bail explicite de 1 000 à 60 000 ms auprès d’un mod ayant observé la partie. Fermer avec use ; renouvellement et reprises ne sont jamais automatiques.
NimbyClient.close
override fun close(): UnitFerme cette connexion et libère ses ressources. Les copies Kotlin déjà retournées restent valables comme anciennes observations ; aucun nouvel appel sur cette connexion.