Récupérez les valeurs de configuration, les traductions, les jetons dynamiques et les ressources d'autres mods grâce aux jetons spéciaux de Content Patcher.
Les jetons de compatibilité inter-mods ajoutent des jetons Content Patcher spéciaux et personnalisés qui vous permettent (si vous êtes un auteur de mod) d'accéder aux valeurs de configuration, aux traductions et aux jetons dynamiques d'autres mods, y compris ceux qui ne sont pas spécifiquement conçus pour Content Patcher. Ces jetons peuvent s'avérer utiles si vous n'avez absolument aucun autre moyen de garantir une compatibilité parfaite entre votre mod et celui d'un autre auteur, notamment si vous devez modifier des éléments en fonction des valeurs mentionnées précédemment.
InstallationUtilisation pour les joueursCe mod est inutile seul. Son installation n'apporte aucun avantage si un autre mod que vous utilisez ne le requiert pas.
Utilisation pour les auteurs de mods Content PatcherCe mod ajoute quatre jetons :
- Spiderbuttons.CMCT/Config
- Spiderbuttons.CMCT/Traduction
- Spiderbuttons.CMCT/Dynamique
- Spiderbuttons.CMCT/Asset
Chacun de ces jetons vous permettra de récupérer respectivement les valeurs de configuration, les chaînes de traduction, les valeurs de jetons dynamiques ou les clés d'actifs internes. Tous les quatre.
exiger Arguments d'entrée. Le premier argument d'entrée sera toujours l'identifiant unique du module dont vous souhaitez extraire la valeur. Le deuxième argument d'entrée dépendra du jeton en question :
- Config : Nom de la valeur de configuration à rechercher. Si la valeur de configuration est imbriquée, vous devez inclure le chemin complet de configuration basé sur la structure JSON.
- Traduction : La clé i18n de la traduction souhaitée. Elle récupérera toujours la traduction de la langue actuellement sélectionnée.
- Dynamique : le nom du jeton dynamique.
- Ressource : Le chemin d’accès à la ressource depuis l’autre mod, par rapport à leur Fichier manifest.json.
Si vous utilisez l'un de ces jetons, vous
doit Définissez l'autre mod comme dépendance. Sinon, il
pourrait Cela fonctionne, mais cela peut aussi générer des erreurs étranges. Voici quatre exemples, un pour chaque jeton, en utilisant
Recherchez n'importe quoi,
Souris à chapeau Lacey, et
Les livres supplémentaires de Button à titre de démonstration :
- {{Spiderbuttons.CMCT/Config: Pathoschild.LookupAnything, Controls.ToggleSearch}}
- {{Spiderbuttons.CMCT/Translation: ichortower.HatMouseLacey, houseDisplayName}}
- {{Spiderbuttons.CMCT/Dynamic: ichortower.HatMouseLacey, Lacey}}
- {{Spiderbuttons.CMCT/Asset: Spiderbuttons.ButtonsExtraBooks, assets/Books/sheet.png}}
LimitesActuellement, je considère qu'il y a deux principaux points faibles :
- Les traductions qui prennent des jetons en entrée (c'est-à-dire des valeurs i18n qui ont leurs propres {{tokens}} à l'intérieur de l'i18n lui-même) ne fonctionnent pas correctement et ne récupéreront que la chaîne littérale avec le jeton toujours présent avec les accolades.
- Les jetons dynamiques ne sont initialisés qu'au chargement d'une sauvegarde, et non au lancement du jeu. Cela peut avoir ou non une quelconque importance pour vous.
Il convient également de mentionner que vous devez utiliser le jeton dynamique
aussi peu que possibleSans entrer dans les détails techniques du fonctionnement de Content Patcher, en raison de la manière dont j'ai dû implémenter le jeton, celui-ci signalera systématiquement que ses modifications doivent être propagées, même si le jeton dynamique qu'il vérifie auprès d'un autre module n'a pas changé. Ce n'est pas trop problématique si votre jeton se met à jour uniquement lors de l'événement OnDayStart, comme c'est le cas par défaut, mais cela peut s'avérer coûteux si vous le mettez à jour lors des événements OnTimeChange ou OnLocationChange !
Code source