Example #1
0
        //--------------------------------------------------------------- Deprecated ------------------------------------------------------------------------------------

        private static void AddModpacksRecursive(Modpack modpack, ICollection <ModpackExportTemplate> templateCollection, bool includeVersionInfo)
        {
            var template = ModpackExportTemplate.FromModpack(modpack, includeVersionInfo);

            if (!templateCollection.Contains(template))
            {
                templateCollection.Add(template);
            }

            foreach (var reference in modpack.Mods)
            {
                ModpackReference modpackReference = reference as ModpackReference;
                if (modpackReference != null)
                {
                    Modpack subModpack = modpackReference.Modpack;
                    AddModpacksRecursive(subModpack, templateCollection, includeVersionInfo);
                }
            }
        }
Example #2
0
        public static async Task <ExportTemplate> CreateTemplateV2(IEnumerable <ModpackTemplate> modpacks)
        {
            ModExportTemplate.ResetUid();
            ModpackExportTemplate.ResetUid();

            var modExportTemplates     = new List <ModExportTemplate>();
            var modpackExportTemplates = new List <ModpackExportTemplate>();

            var sortedModpacks = ModpackTopologicalSort(modpacks);

            foreach (var modpack in sortedModpacks)
            {
                var modIds     = new List <int>();
                var modpackIds = new List <int>();

                foreach (var mod in modpack.ModTemplates)
                {
                    var template = await AddUniqueModTemplate(mod, modExportTemplates);

                    modIds.Add(template.Uid);
                }

                foreach (var subModpack in modpack.ModpackTemplates)
                {
                    var exportTemplate = modpackExportTemplates.FirstOrDefault(et => et.Modpack == subModpack.Modpack);
                    if (exportTemplate != null)
                    {
                        modpackIds.Add(exportTemplate.Uid);
                    }
                }

                var modpackExportTemplate = new ModpackExportTemplate(modpack.Modpack, modIds.ToArray(), modpackIds.ToArray());
                modpackExportTemplates.Add(modpackExportTemplate);
            }

            return(new ExportTemplate(modExportTemplates.ToArray(), modpackExportTemplates.ToArray()));
        }