예제 #1
0
        public static void SetActive(string name, GameCompatibleVersion version, Version factorioVersion, bool value, bool isOnly, bool isDefault)
        {
            if (Contains(factorioVersion, out var list))
            {
                list.SetActive(name, value, version, factorioVersion, isOnly, isDefault);
                list.Save();
            }
            else
            {
                list         = ModTemplateList.Load(Path.Combine(App.Instance.Settings.GetModDirectory(factorioVersion).FullName, "mod-list.json"));
                list.Version = factorioVersion;
                TemplateLists.Add(list);

                list.SetActive(name, value, version, factorioVersion, isOnly, isDefault);
                list.Save();
            }
        }
예제 #2
0
        public static bool GetActive(string name, GameCompatibleVersion version, Version factorioVersion, bool isOnly)
        {
            ModTemplateList list;

            if (Contains(factorioVersion, out list))
            {
                return(list.GetActive(name, version, factorioVersion, isOnly));
            }
            else
            {
                list         = ModTemplateList.Load(Path.Combine(App.Instance.Settings.GetModDirectory(factorioVersion).FullName, "mod-list.json"));
                list.Version = factorioVersion;
                TemplateLists.Add(list);

                return(list.GetActive(name, version, factorioVersion, isOnly));
            }
        }
예제 #3
0
        public static void SetActive(string name, Version version, bool value)
        {
            ModTemplateList list;

            if (Contains(version, out list))
            {
                list.SetActive(name, value);
            }
            else
            {
                list         = ModTemplateList.Load(Path.Combine(App.Instance.Settings.GetModDirectory(version).FullName, "mod-list.json"));
                list.Version = version;
                TemplateLists.Add(list);

                list.SetActive(name, value);
            }
        }
예제 #4
0
        /// <summary>
        /// Loads a specified mod-list.json file.
        /// </summary>
        /// <param name="path">The file path.</param>
        /// <returns>Returns a ModTemplateList representing the specified mod-list.json file.</returns>
        public static ModTemplateList Load(string path)
        {
            var file = new FileInfo(path);

            if (file.Exists)
            {
                ModTemplateList templateList = JsonHelper.Deserialize <ModTemplateList>(file);
                templateList.file = file;
                return(templateList);
            }
            else
            {
                var templateList = new ModTemplateList(file);
                templateList.Save();
                return(templateList);
            }
        }
예제 #5
0
        public static void LoadTemplates()
        {
            TemplateLists.Clear();

            var modDirectory = App.Instance.Settings.GetModDirectory();

            if (modDirectory.Exists)
            {
                foreach (var directory in modDirectory.EnumerateDirectories())
                {
                    Version version;
                    if (Version.TryParse(directory.Name, out version))
                    {
                        var templateList = ModTemplateList.Load(Path.Combine(directory.FullName, "mod-list.json"));
                        templateList.Version = version;
                        TemplateLists.Add(templateList);
                    }
                }
            }
        }
예제 #6
0
 private static bool Contains(Version version, out ModTemplateList list)
 {
     list = TemplateLists.Find(l => l.Version == version);
     return(list != null);
 }