コード例 #1
0
        private List <ModEntry> LoadMetadataForModTypes(List <Type> mods)
        {
            var result = new List <ModEntry>();

            foreach (Type mod in mods)
            {
                try
                {
                    string metadataPath = Path.Combine(
                        Path.GetDirectoryName(mod.Assembly.Location),
                        $"{Path.GetFileNameWithoutExtension(mod.Assembly.Location)}.json");
                    ModMetadata metadata = _metadataProvider.Read <ModMetadata>(metadataPath);
                    if (metadata is null)
                    {
                        metadata = new ModMetadata(mod.FullName, new Version(0, 0));
                    }
                    result.Add(new ModEntry(mod, metadata));
                }
                catch (FileNotFoundException)
                {
                    ModMetadata metadata = new ModMetadata(mod.FullName, new Version(0, 0));
                    result.Add(new ModEntry(mod, metadata));
                }
            }
            return(result);
        }
コード例 #2
0
 public ModEntry(IPhoenixPointMod modInstance, Type modType, ModMetadata modMetadata)
 {
     ModInstance = modInstance;
     ModType     = modType;
     ModMetadata = modMetadata;
 }
コード例 #3
0
 public ModEntry(Type modType, ModMetadata modMetadata) : this(null, modType, modMetadata)
 {
 }