NRF Guide

Référence

ModServices

Déclarer un outil ou une action disponible lorsqu’un autre mod est chargé.

Contexte d’utilisation

ModulePackageSource SDK
Kotlin/Nativenimbykotlin/src/nimby/ModServices.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.

SignalAction

nimby · class
data class SignalAction(val id: String, val label: String, val whenMod: String, val service: String)

Bouton optionnel sur le panneau d'un signal. [whenMod] est l'identifiant du fournisseur, pas une dépendance d'installation. Sans ce mod et son service, le bouton est absent et les règles de signalisation restent inchangées.

SignalActionRequest

nimby · class
data class SignalActionRequest(
    val sequence: Long, val signalId: Long, val action: String, val service: String,
    val worldId: String, val generation: Long,
    val panelToken: Long = 0, val originAction: String = action,
)

Clic confirmé par le SDK : signal complet et génération de partie observée. Un clic n'est ni une permission de construire ni une réservation d'itinéraire.

GameMod

nimby · class
abstract class GameMod

Base commune : un outil ne doit pas inventer un modèle de signalisation.

GameMod.id

nimby · val
abstract val id: String

GameMod.title

nimby · val
abstract val title: String

GameMod.services

nimby · val
open val services: List<String> = emptyList()

GameMod.onSignalAction

nimby · fun
open fun onSignalAction(request: SignalActionRequest, context: ToolContext)

GameMod.onTick

nimby · fun
open fun onTick(context: ToolContext)

GameMod.onStop

nimby · fun
open fun onStop()

ToolMod

nimby · class
class ToolMod : GameMod()

Un mod outil reçoit des actions sans définir d'indication ni de vitesse. Construction réservée au SDK : utilisez la fonction de création ou le contexte fourni.

ToolMod.id

nimby · val
override val id: String

ToolMod.title

nimby · val
override val title: String

ToolMod.services

nimby · val
override val services: List<String> = handlers.keys.toList()

ToolMod.onSignalAction

nimby · fun
override fun onSignalAction(request: SignalActionRequest, context: ToolContext)

ToolMod.onTick

nimby · fun
override fun onTick(context: ToolContext) = tick(context)

ToolMod.onStop

nimby · fun
override fun onStop() = stop()

ToolModBuilder

nimby · class
class ToolModBuilder

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

ToolModBuilder.service

nimby · fun
fun service(id: String, handler: ToolContext.(SignalActionRequest) -> Unit)

Callback sérialisé sur le worker du mod, jamais sur le thread de l'UI.

ToolModBuilder.onTick

nimby · fun
fun onTick(block: ToolContext.() -> Unit)

ToolModBuilder.onStop

nimby · fun
fun onStop(block: () -> Unit)

toolMod

nimby · fun
fun toolMod(id: String, title: String, block: ToolModBuilder.() -> Unit): ToolMod