From 21b657c086bec233d2f1939a4be835f90cff68ce Mon Sep 17 00:00:00 2001 From: Minizbot2012 Date: Sat, 16 Jan 2021 11:09:42 -0500 Subject: [PATCH 1/9] new meta format; enchanced grouping; minor fixes --- Penumbra/Importer/Models/ExtendedModPack.cs | 2 +- Penumbra/Importer/TexToolsImport.cs | 43 +++-- Penumbra/Models/GroupInformation.cs | 192 +------------------- Penumbra/Models/ModInfo.cs | 7 +- Penumbra/Models/ModMeta.cs | 2 +- Penumbra/Mods/ModManager.cs | 51 ++++-- Penumbra/Mods/ResourceMod.cs | 6 +- Penumbra/Plugin.cs | 2 + Penumbra/UI/SettingsInterface.cs | 86 +++++---- 9 files changed, 136 insertions(+), 255 deletions(-) diff --git a/Penumbra/Importer/Models/ExtendedModPack.cs b/Penumbra/Importer/Models/ExtendedModPack.cs index 7070c7d6..5a69e191 100644 --- a/Penumbra/Importer/Models/ExtendedModPack.cs +++ b/Penumbra/Importer/Models/ExtendedModPack.cs @@ -5,7 +5,7 @@ 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; } diff --git a/Penumbra/Importer/TexToolsImport.cs b/Penumbra/Importer/TexToolsImport.cs index c33a5f43..8fda845c 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,26 @@ 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() ) - { - foreach( var file in dir.EnumerateFiles( "*.*", SearchOption.AllDirectories ) ) - { - meta.Groups.AddFileToOtherGroups( optionName - , file.FullName.Substring( baseFolderLength ).TrimStart( '\\' ) - , file.FullName.Substring( optionFolderLength ).TrimStart( '\\' ).Replace( '\\', '/' ) ); + var Inf = new InstallerInfo { + SelectionType = group.SelectionType, + GroupName = group.GroupName, + Options = new List