Example #1
0
        public void RebuildFactorioModlist()
        {
            IList <ModListJson.ModListJsonItem> prevModList = tryGetPreviousFactorioModlist();

            ModListJson.ModListJsonItem dummyDisabledItem = new ModListJson.ModListJsonItem()
            {
                enabled = ModListJson.ModListJsonTruthy.YES
            };
            // if mod is already in mod-list.json, take its state from there
            // if not, set to enabled
            ModListJson modList = new ModListJson
            {
                mods = RegistryManager.registry.Installed(false)
                       .Keys.Select(
                    modName =>
                    new ModListJson.ModListJsonItem()
                {
                    name    = modName,
                    enabled =
                        (prevModList.FirstOrDefault(p => p.name == modName) ?? dummyDisabledItem).enabled
                }).ToList()
            };

            File.WriteAllText(Path.Combine(Mods(), "mod-list.json"), JsonConvert.SerializeObject(modList));
        }
Example #2
0
        public static CfanJson createCfanJsonFromModListJson(string file, string name, string title, ModVersion version, string author, string description = "")
        {
            ModListJson modList  = JsonConvert.DeserializeObject <ModListJson>(File.ReadAllText(file, Encoding.UTF8));
            CfanJson    cfanJson = createEmptyMetaCfanJson(name, title, version, author, description);

            cfanJson.modInfo.dependencies = modList.mods.Where(p => p.enabled == ModListJson.ModListJsonTruthy.YES)
                                            .Select(p => new ModDependency(p.name))
                                            .ToArray();
            cfanJson.suggests = modList.mods.Where(p => p.enabled == ModListJson.ModListJsonTruthy.NO).Select(p => new ModDependency(p.name)).ToArray();
            return(cfanJson);
        }
Example #3
0
 private IList <ModListJson.ModListJsonItem> tryGetPreviousFactorioModlist()
 {
     try
     {
         ModListJson prevModListJson = JsonConvert.DeserializeObject <ModListJson>(File.ReadAllText(Path.Combine(Mods(), "mod-list.json")));
         if (prevModListJson?.mods != null)
         {
             return(prevModListJson.mods);
         }
     }
     catch (Exception e)
     {
         log.Error("Couldn't read mod-list.json", e);
     }
     return(new List <ModListJson.ModListJsonItem>());
 }