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); }
public ModEntry(IPhoenixPointMod modInstance, Type modType, ModMetadata modMetadata) { ModInstance = modInstance; ModType = modType; ModMetadata = modMetadata; }
public ModEntry(Type modType, ModMetadata modMetadata) : this(null, modType, modMetadata) { }