Пример #1
0
        private List <ModEntry> InstantiateMods(List <ModEntry> modEntries)
        {
            var instantiatedEntries = new List <ModEntry>();

            foreach (ModEntry entry in modEntries)
            {
                try
                {
                    IWTFMod modInstance = _container.GetInstance(entry.ModType) as IWTFMod;
                    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));
                    instantiatedEntries.Last <ModEntry>().Source = entry.Source;
                }
                catch (Exception e)
                {
                    Logger.Log($"Mod `{entry.ModMetadata.Name} (v{entry.ModMetadata.Version})` failed to initialize.");
                    Logger.Log($"{e}");
                    entry.Issue = "failed to initialize";
                    IssuedMods.Value.Add(entry);
                    continue;
                }
            }
            return(instantiatedEntries);
        }
 public ModEntry(IWTFMod modInstance, Type modType, ModMetadata modMetadata)
 {
     ModInstance = modInstance;
     ModType     = modType;
     ModMetadata = modMetadata;
 }