//--------------------------------------------------------------- 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); } } }
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())); }