Référence
ModServices
Déclarer un outil ou une action disponible lorsqu’un autre mod est chargé.
Contexte d’utilisation
| Module | Package | Source SDK |
|---|---|---|
| Kotlin/Native | nimby | kotlin/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
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
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
abstract class GameModBase commune : un outil ne doit pas inventer un modèle de signalisation.
GameMod.id
abstract val id: StringGameMod.title
abstract val title: StringGameMod.services
open val services: List<String> = emptyList()GameMod.onSignalAction
open fun onSignalAction(request: SignalActionRequest, context: ToolContext)GameMod.onTick
open fun onTick(context: ToolContext)GameMod.onStop
open fun onStop()ToolMod
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
override val id: StringToolMod.title
override val title: StringToolMod.services
override val services: List<String> = handlers.keys.toList()ToolMod.onSignalAction
override fun onSignalAction(request: SignalActionRequest, context: ToolContext)ToolMod.onTick
override fun onTick(context: ToolContext) = tick(context)ToolMod.onStop
override fun onStop() = stop()ToolModBuilder
class ToolModBuilderConstruction réservée au SDK : utilisez la fonction de création ou le contexte fourni.
ToolModBuilder.service
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
fun onTick(block: ToolContext.() -> Unit)ToolModBuilder.onStop
fun onStop(block: () -> Unit)toolMod
fun toolMod(id: String, title: String, block: ToolModBuilder.() -> Unit): ToolMod