NRF Guide

Référence

Nimby

Point d’entrée du client : connexion et fonctions regroupées par usage dans Game.

Contexte d’utilisation

ModulePackageSource SDK
Kotlin/JVMfr.nimby.sdkkotlin-client/src/main/kotlin/fr/nimby/sdk/Nimby.kt

Signatures extraites de la version 0.8.0-alpha.1. Les paramètres, leurs valeurs par défaut et les propriétés de constructeur sont conservés. Les corps des méthodes ne font pas partie de cette référence.

Nimby

fr.nimby.sdk · object
object Nimby

Point d'entrée d'une application Kotlin. Un mod chargé par le loader utilise le module nimby et n'a pas besoin d'ouvrir cette connexion externe.

Nimby.runningGames

fr.nimby.sdk · fun
fun runningGames(): List<GameProcess> = GameProcesses.discover()

Liste les jeux accessibles sans choisir silencieusement un processus.

Nimby.connect

fr.nimby.sdk · fun
fun connect(sdk: Path, processId: Int? = null): Game

Ouvre le SDK indiqué. Sans PID, exige exactement un jeu accessible. La connexion se ferme avec use { game -> … }. Aucun essai de mutation ni injection n'est déclenché par cette ouverture.

Game

fr.nimby.sdk · class
class Game : AutoCloseable

Une connexion organisée par usage. Les observations sont des copies Kotlin. [advanced] conserve l'accès à toutes les opérations détaillées du transport, sur la même session et avec le même verrou. Ne pas le fermer séparément. Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

Game.advanced

fr.nimby.sdk · val
val advanced: NimbyClient

Game.trains

fr.nimby.sdk · val
val trains: Trains = Trains(advanced)

Game.clock

fr.nimby.sdk · val
val clock: Clock = Clock(advanced)

Game.signals

fr.nimby.sdk · val
val signals: Signals = Signals(advanced)

Game.mods

fr.nimby.sdk · val
val mods: Mods = Mods(advanced)

Game.construction

fr.nimby.sdk · val
val construction: Construction = Construction(advanced)

Game.snapshot

fr.nimby.sdk · fun
fun snapshot(selectedTrain: Long? = null): Observation = advanced.capture(selectedTrain)

Capture complète ; demander seulement le train voulu avec trains.read quand les autres tables ne sont pas nécessaires.

Game.close

fr.nimby.sdk · fun
override fun close(): Unit = advanced.close()

Game.Trains

fr.nimby.sdk · class
class Trains

Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

Game.Trains.read

fr.nimby.sdk · fun
fun read(id: Long): DrivingObservation? = client.readTrain(id)

Null signifie absent ou instable, jamais arrêté par défaut.

Game.Clock

fr.nimby.sdk · class
class Clock

Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

Game.Clock.read

fr.nimby.sdk · fun
fun read(): SimulationClock? = client.capture().clock

Lit via une capture complète. Réutiliser snapshot.clock lorsqu'une capture a déjà été réalisée, pour ne pas doubler le coût de lecture.

Game.Clock.set

fr.nimby.sdk · fun
fun set(utc: Instant, recalculateTrains: Boolean = false): SimulationTimeChange =

UTC en secondes entières. Écriture explicite, sans nouvelle tentative.

Game.Signals

fr.nimby.sdk · class
class Signals

Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

Game.Signals.showTexture

fr.nimby.sdk · fun
fun showTexture(id: Long, catalogue: String, image: String, durationMillis: Int): Unit =

Affichage seul, de 1 à 60 secondes. Ne change pas une permission.

Game.Signals.restoreTexture

fr.nimby.sdk · fun
fun restoreTexture(id: Long): Unit = client.restoreSignalTexture(id)

Game.Mods

fr.nimby.sdk · class
class Mods

Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

Game.Mods.status

fr.nimby.sdk · fun
fun status(id: String): ControlResponse = client.modControl(id, ControlRequest(ControlOperation.Status))

Interroge le mod chargé. Une erreur de transport n'est pas une preuve d'absence : l'exception reste visible au programme appelant.

Game.Mods.control

fr.nimby.sdk · fun
fun control(id: String, leaseMillis: Int = 5000): ModControlSession = client.acquireModControl(id, leaseMillis)

Bail explicite pour une recette. Le mod décide des forçages acceptés.

Game.Construction

fr.nimby.sdk · class
class Construction

Expérimental : nécessite le pont de construction séparé. Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

Game.Construction.prepare

fr.nimby.sdk · fun
fun prepare(sourceSignal: Long): ConstructionResult = client.prepareConstruction(sourceSignal)

Game.Construction.create

fr.nimby.sdk · fun
fun create(token: Long, sourceSignal: Long, positions: List<Position>): ConstructionResult =

Game.Construction.poll

fr.nimby.sdk · fun
fun poll(token: Long): ConstructionResult = client.pollConstruction(token)

Game.Construction.undo

fr.nimby.sdk · fun
fun undo(token: Long): ConstructionResult = client.undoConstruction(token)