Modding API : création d'un mod

Création d'un mod

Le commencement

La première étape consiste à ajouter ces deux lignes dans le fichier C# :

Code:
using ICities;
using UnityEngine;

Ensuite, définir la classe qui doit hériter de IUserMod du namespace ICities.
Voici un exemple de définition de mod :

Code:
namespace UnlockAllMod {
 
   public class MyCustomMod : IUserMod {
 
      public string Name {
         get { return "My mod name"; }
      }
 
      public string Description {
         get { return "Here is where I define my mod"; }
      }
   }

L'étape suivante consiste à mettre en œuvre ce que vous voulez en redéfinissant les modalités prévues dans les interfaces suivantes: IUserMod, IAreasExtension, IChirperExtension, IDemandExtension, IEconomyExtension, ILevelUpExtension, ILoadingExtension, IMilestonesExtension, ISerializableDataExtension, ITerrainExtension, IThreadingExtension. Les classes créées et la méthode doivent hériter des classes nécessaires. Chaque interface donne le rappel de l'OnCreated () et de OnReleased (). Ces systèmes sont invoqués lors de la création et de la destruction du temps, mais aussi lors de la recompilation d'un mod tandis que le jeu est en cours d'exécution. Chaque interface, ciblée depuis l'usage de leur nom décrit, fournit également une interface vers un "manager" dans OnCreated () qui permet d'interagir avec le gestionnaire de jeu directement. Donc, la mise en œuvre d'une interface d'extension fournit les rappels mécaniques et le manager dialogue avec le jeu. Cela peut être frustrant de travailler sur les interfaces de base étant donné qu'il est requis de surcharger chaque système unique même si vous avez seulement besoin d'un ou bien quelques-uns d'entre eux, pour plus de commodité, nous offrons une implémentation abstraite non-pure de la plupart des extensions. Par exemple, la contrepartie non-pure de IThreadingExtension serait ThreadingExtensionBase ; en héritant d'une classe à la place de l'interface de base pur vous permettra de remplacer seulement les systèmes requis afin d'obtenir l'accès à un type de iManager qui vous relie à tous les gestionnaires, peut importe l'interface.


Voici les interfaces avec une description de ce qui est proposé :

Général
Code:
//Thread: Main
void OnCreated(<IRelatedManager> instance);
 
Thread: Main
void OnReleased();
 
Thread: Any
IManagers managers [] { get; }

Ces fonctions sont dans chaque classe de base à l'exception des usermod, et sont appelées respectivement à la création et la destruction d'une instance. La manager receveur renvoie un stockage global pour chaque gestionnaires disponibles à travers des extensions différentes.

Commentaires