Example #1
0
        /// <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));
 }