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; }