NRF SDK 0.9

Référence

Projet Gradle et paquet Native

Contrat public du plugin fr.nimbyrails.mod : kit, identité, manifeste, ressources, tâches et sorties.

Sélection du kit et du plugin

Cette page s’adresse aux projets Kotlin/Native de mods et d’outils en jeu. Pour une application Kotlin/JVM, suivez le guide de connexion. Le plugin fr.nimbyrails.mod est fourni par gradle-repository dans le kit ; settings.gradle.kts sélectionne la version gradlePluginVersion de sdk.json.

EntréeContrat
nrfSdkDirPropriété Gradle prioritaire, chemin du dossier extrait contenant sdk.json. Un chemin relatif est résolu depuis le projet.
NRF_KOTLIN_SDKVariable d’environnement utilisée lorsque nrfSdkDir est absent.
sdk.jsonDécrit le kit choisi. Le plugin contrôle les fichiers requis, le format, Kotlin, sa propre version, la plage SDK et les binaires de jeu déclarés.
fr.nimbyrails.modApplique la configuration Kotlin et fournit les dépendances de compilation. Le kit Windows crée la cible windows et les tâches windowsTest.

Champs de mod.json

ChampType et valeur acceptéeSignification
idChaîne : lettre minuscule initiale, puis minuscules, chiffres ou tirets ; 1 à 64 caractères.Identité du projet pour le Hub.
nameChaîne non vide après retrait des espaces de bord.Nom lisible et titre de modInfo.
modIdChaîne de 1 à 70 lettres, chiffres, tirets ou underscores.Identité de dossier et préfixe du paquet.
moduleChaîne de 1 à 100 caractères ; lettre initiale, puis lettres, chiffres, tirets ou underscores. Sans extension.Base du nom des fichiers du mod.
versionX.Y.Z, X.Y.Z-alpha.N ou X.Y.Z-beta.N ; nombres sans zéro initial, X/Y/Z de 0 à 9999, N de 1 à 999999999.Version propre au mod ; alpha, beta ou stable déterminent aussi son canal.
language"kotlin-native"Langage attendu par ce plugin.
sdkMin · sdkMaxExclusiveVersions au même format, avec sdkMin strictement inférieur à sdkMaxExclusive.Intervalle accepté : borne basse incluse, borne haute exclue.
gameSha256Liste non vide de chaînes hexadécimales SHA-256 à 64 caractères.Chaque binaire de jeu déclaré doit être pris en charge par le kit.

À numéros X.Y.Z égaux, alpha précède beta, puis la version stable ; les numéros de préversion sont comparés numériquement. Déclarez les compatibilités que vous avez vérifiées. Ces contrôles de construction ne remplacent pas un essai en partie.

createMod et l’identité générée

Contrat du point d’entrée, commentaire de repérage
package nimby.mod

// createMod() assembles your signalMod or toolMod declaration.
// modInfo is supplied by the plugin from mod.json.

Fournissez createMod() dans le package nimby.mod. Pour un signal, le résultat est un SignallingMod construit avec signalMod(modInfo) ; un outil utilise toolMod et son contrat dédié. Le plugin génère modInfo depuis id et name : gardez cette source d’identité unique.

La génération du catalogue évalue la déclaration hors jeu. createMod et ses initialisations doivent donc décrire le mod sans accéder à une partie ni imprimer de texte sur la sortie standard. Placez les interactions avec le jeu dans les callbacks prévus et les messages de diagnostic dans les fonctions de journalisation.

Fichiers inclus dans le paquet

SourceDestination ou rôle
src/main/kotlin/Sources compilées ; elles ne sont pas copiées telles quelles dans la distribution.
src/test/kotlin/Tests exécutés par les tâches de test, sans inclusion dans le paquet.
assets/Contenu à la racine du paquet, sauf mod.txt et nrf-mod.ini qui sont générés.
imgs/ · config/ · docs/Dossiers facultatifs conservés sous le même nom.
README.md · LICENSE · LICENSE.txtFichiers facultatifs copiés à la racine.
licenses/Notices du mod dans licenses/mod ; celles du SDK sont ajoutées dans licenses/sdk.

Sous Windows, le paquet contient les fichiers <module>.dll et <module>Kotlin.dll. Distribuez le dossier complet avec ses ressources et licences. Les composants SDK utilisés pour vérifier le paquet ne deviennent pas des fichiers à ajouter manuellement à votre mod.

Choisir la tâche Gradle

TâcheRésultat sous Windows
windowsTestExécute les tests Kotlin ; rapports dans build/gradle/reports/tests/.
generateModIdentityGénère modInfo depuis mod.json ; appelée automatiquement lors des compilations nécessaires.
generateDebugGameManifest · generateReleaseGameManifestÉvalue la déclaration compilée et génère mod.txt et nrf-metadata.json pour la variante choisie.
generateModManifestGénère nrf-mod.ini pour le paquet.
assembleDebugMod · assembleReleaseModAssemble dans build/gradle/mod/debug ou release. Cette étape seule n’exécute pas toute la recette.
verifyNativeModAssemble la variante Release et vérifie son cycle de vie sans jeu.
modArchiveAssemble Release, dépend des tests et de verifyNativeMod, puis produit le ZIP.
hubManifestConstruit le ZIP et génère les deux descripteurs avec taille et empreinte réelles.
packageModPoint d’entrée de distribution : dépend de hubManifest.
buildAssemblages, vérifications, tests et distribution.
cleanSupprime les résultats du build dans build/gradle ; ne désinstalle pas le profil du jeu.
Vérifier puis préparer la distribution
.\gradlew.bat windowsTest assembleReleaseMod verifyNativeMod
.\gradlew.bat packageMod

Les tâches dépendantes peuvent être UP-TO-DATE si leurs entrées n’ont pas changé. Le ZIP se trouve dans build/gradle/distributions, porte le nom <modId>-<version>-windows-x64.zip et contient un dossier racine <modId>-<version>.

Descripteur local et URL de publication

hubManifest écrit project.json et project-windows-x64.json. Leur url désigne par défaut le nom local du ZIP. Leur taille et leur SHA-256 sont calculés à partir du fichier produit, pas saisis dans mod.json.

L’option Gradle releaseBaseUrl sert au flux de publication des dépôts officiels. Dans cette version du plugin, elle accepte uniquement https://github.com/NimbyRails-France/<id>/releases/download/v<version>, avec id et version de mod.json, et y ajoute le nom du ZIP. Elle prépare une URL ; elle ne publie rien. Pour un autre hébergement, conservez le descripteur local et utilisez le processus de distribution de votre projet.