/// <summary> /// Reports whether a given mod (by the given internal name) is "properly presented": Has a valid description, /// homepage, and any other needed checks (in future considerations). /// </summary> /// <param name="modName"></param> /// <returns></returns> public static bool IsLoadedModProperlyPresented(string modName) { Mod mod = ModLoader.GetMod(modName); if (mod == null) { LogHelpers.Alert("Invalid mod " + modName); return(false); } IDictionary <string, BuildPropertiesViewer> modInfos = ModListHelpers.GetLoadedModNamesWithBuildProps(); if (!modInfos.ContainsKey(modName)) { LogHelpers.Alert("Missing mod " + modName); return(false); } var modInfo = new BasicModInfo(mod.DisplayName, modInfos[modName].Author.Split(',').SafeSelect(a => a.Trim()), mod.Version, modInfos[modName].Description, modInfos[modName].Homepage ); return(ModIdentityHelpers.IsProperlyPresented(modInfo)); }
//// private IDictionary <string, ISet <Mod> > GetModsByAuthor() { var mods = new Dictionary <string, ISet <Mod> >(); foreach (var kv in ModListHelpers.GetLoadedModsAndBuildInfo()) { Services.TML.BuildPropertiesViewer editor = kv.Key; Mod mod = kv.Value; foreach (string author in editor.Author.Split(',').Select(a => a.Trim())) { mods.Append2D(author, mod); } } return(mods); }
private IDictionary <string, Services.TML.BuildPropertiesViewer> GetBuildPropsByModName() { return(ModListHelpers.GetLoadedModsAndBuildInfo() .ToDictionary(kv => kv.Value.Name, kv => kv.Key)); }