diff --git a/Penumbra/Importer/Models/ExtendedModPack.cs b/Penumbra/Importer/Models/ExtendedModPack.cs index 7070c7d6..105cdee0 100644 --- a/Penumbra/Importer/Models/ExtendedModPack.cs +++ b/Penumbra/Importer/Models/ExtendedModPack.cs @@ -1,22 +1,23 @@ using System.Collections.Generic; +using Penumbra.Models; namespace Penumbra.Importer.Models { internal class OptionList { public string Name { get; set; } - public object Description { get; set; } + public string Description { get; set; } public string ImagePath { get; set; } public List< SimpleMod > ModsJsons { get; set; } public string GroupName { get; set; } - public string SelectionType { get; set; } + public SelectType SelectionType { get; set; } public bool IsChecked { get; set; } } internal class ModGroup { public string GroupName { get; set; } - public string SelectionType { get; set; } + public SelectType SelectionType { get; set; } public List< OptionList > OptionList { get; set; } } diff --git a/Penumbra/Importer/TexToolsImport.cs b/Penumbra/Importer/TexToolsImport.cs index c33a5f43..9ec04a57 100644 --- a/Penumbra/Importer/TexToolsImport.cs +++ b/Penumbra/Importer/TexToolsImport.cs @@ -211,14 +211,16 @@ namespace Penumbra.Importer return; // Iterate through all pages - foreach( var option in from modPackPage in modList.ModPackPages - from modGroup in modPackPage.ModGroups - from option in modGroup.OptionList - select option ) + foreach( var page in modList.ModPackPages) { - var optionFolder = new DirectoryInfo( Path.Combine( newModFolder.FullName, option.Name ) ); - ExtractSimpleModList( optionFolder, option.ModsJsons, modData ); - AddMeta( optionFolder, newModFolder, modMeta, option.Name ); + foreach(var group in page.ModGroups) { + var groupFolder = new DirectoryInfo(Path.Combine(newModFolder.FullName, group.GroupName)); + foreach(var option in group.OptionList) { + var optionFolder = new DirectoryInfo( Path.Combine( groupFolder.FullName, option.Name ) ); + ExtractSimpleModList( optionFolder, option.ModsJsons, modData ); + } + AddMeta(newModFolder, groupFolder, group, modMeta); + } } File.WriteAllText( @@ -227,19 +229,30 @@ namespace Penumbra.Importer ); } - void AddMeta( DirectoryInfo optionFolder, DirectoryInfo baseFolder, ModMeta meta, string optionName ) + private void AddMeta( DirectoryInfo baseFolder, DirectoryInfo groupFolder,ModGroup group, ModMeta meta) { - var optionFolderLength = optionFolder.FullName.Length; - var baseFolderLength = baseFolder.FullName.Length; - foreach( var dir in optionFolder.EnumerateDirectories() ) + var Inf = new InstallerInfo { - foreach( var file in dir.EnumerateFiles( "*.*", SearchOption.AllDirectories ) ) + SelectionType = group.SelectionType, + GroupName = group.GroupName, + Options = new List