示例#1
0
        private List <ModEntry> InstantiateMods(List <ModEntry> modEntries)
        {
            var instantiatedEntries = new List <ModEntry>();

            foreach (ModEntry entry in modEntries)
            {
                try
                {
                    IPhoenixPointMod modInstance = _container.GetInstance(entry.ModType) as IPhoenixPointMod;
                    if (modInstance == null)
                    {
                        throw new ModLoadFailureException($"Mod `{entry.ModType.FullName}` failed to initialize for unknown reason.");
                    }

                    instantiatedEntries.Add(new ModEntry(modInstance, entry.ModType, entry.ModMetadata));
                }
                catch (Exception e)
                {
                    Logger.Log($"Mod `{entry.ModMetadata.Name} (v{entry.ModMetadata.Version})` failed to initialize.");
                    Logger.Log($"{e}");
                    continue;
                }
            }
            return(instantiatedEntries);
        }
示例#2
0
 public ModEntry(IPhoenixPointMod modInstance, Type modType, ModMetadata modMetadata)
 {
     ModInstance = modInstance;
     ModType     = modType;
     ModMetadata = modMetadata;
 }