mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-23 08:17:59 +01:00
Complete refactoring of most code, indiscriminate application of .editorconfig and general cleanup.
This commit is contained in:
parent
5332119a63
commit
a19ec226c5
84 changed files with 3168 additions and 1709 deletions
|
|
@ -7,8 +7,10 @@ using Dalamud.Plugin;
|
|||
using ICSharpCode.SharpZipLib.Zip;
|
||||
using Newtonsoft.Json;
|
||||
using Penumbra.Importer.Models;
|
||||
using Penumbra.Models;
|
||||
using Penumbra.Mod;
|
||||
using Penumbra.Structs;
|
||||
using Penumbra.Util;
|
||||
using FileMode = System.IO.FileMode;
|
||||
|
||||
namespace Penumbra.Importer
|
||||
{
|
||||
|
|
@ -46,6 +48,12 @@ namespace Penumbra.Importer
|
|||
_resolvedTempFilePath = Path.Combine( _outDirectory.FullName, TempFileName );
|
||||
}
|
||||
|
||||
private static string ReplaceBadXivSymbols( string source )
|
||||
=> source.ReplaceInvalidPathSymbols().RemoveNonAsciiSymbols();
|
||||
|
||||
private static DirectoryInfo NewOptionDirectory( DirectoryInfo baseDir, string optionName )
|
||||
=> new( Path.Combine( baseDir.FullName, ReplaceBadXivSymbols( optionName ) ) );
|
||||
|
||||
public void ImportModPack( FileInfo modPackFile )
|
||||
{
|
||||
CurrentModPack = modPackFile.Name;
|
||||
|
|
@ -94,7 +102,7 @@ namespace Penumbra.Importer
|
|||
WriteZipEntryToTempFile( s );
|
||||
|
||||
var fs = new FileStream( _resolvedTempFilePath, FileMode.Open );
|
||||
return new MagicTempFileStreamManagerAndDeleterFuckery( fs );
|
||||
return new MagicTempFileStreamManagerAndDeleter( fs );
|
||||
}
|
||||
|
||||
private void VerifyVersionAndImport( FileInfo modPackFile )
|
||||
|
|
@ -187,13 +195,11 @@ namespace Penumbra.Importer
|
|||
|
||||
public static DirectoryInfo CreateModFolder( DirectoryInfo outDirectory, string modListName )
|
||||
{
|
||||
var correctedPath = Path.Combine( outDirectory.FullName,
|
||||
Path.GetFileName( modListName ).RemoveInvalidPathSymbols().RemoveNonAsciiSymbols() );
|
||||
var newModFolder = new DirectoryInfo( correctedPath );
|
||||
var newModFolder = NewOptionDirectory( outDirectory, Path.GetFileName( modListName ) );
|
||||
var i = 2;
|
||||
while( newModFolder.Exists && i < 12 )
|
||||
{
|
||||
newModFolder = new DirectoryInfo( correctedPath + $" ({i++})" );
|
||||
newModFolder = new DirectoryInfo( newModFolder.FullName + $" ({i++})" );
|
||||
}
|
||||
|
||||
if( newModFolder.Exists )
|
||||
|
|
@ -272,7 +278,7 @@ namespace Penumbra.Importer
|
|||
|
||||
foreach( var group in page.ModGroups.Where( group => group.GroupName != null && group.OptionList != null ) )
|
||||
{
|
||||
var groupFolder = new DirectoryInfo( Path.Combine( newModFolder.FullName, group.GroupName!.ReplaceInvalidPathSymbols().RemoveNonAsciiSymbols( ) ) );
|
||||
var groupFolder = NewOptionDirectory( newModFolder, group.GroupName! );
|
||||
if( groupFolder.Exists )
|
||||
{
|
||||
groupFolder = new DirectoryInfo( groupFolder.FullName + $" ({page.PageIndex})" );
|
||||
|
|
@ -281,7 +287,7 @@ namespace Penumbra.Importer
|
|||
|
||||
foreach( var option in group.OptionList!.Where( option => option.Name != null && option.ModsJsons != null ) )
|
||||
{
|
||||
var optionFolder = new DirectoryInfo( Path.Combine( groupFolder.FullName, option.Name!.ReplaceInvalidPathSymbols().RemoveNonAsciiSymbols() ) );
|
||||
var optionFolder = NewOptionDirectory( groupFolder, option.Name! );
|
||||
ExtractSimpleModList( optionFolder, option.ModsJsons!, modData );
|
||||
}
|
||||
|
||||
|
|
@ -311,7 +317,7 @@ namespace Penumbra.Importer
|
|||
OptionDesc = string.IsNullOrEmpty( opt.Description ) ? "" : opt.Description!,
|
||||
OptionFiles = new Dictionary< RelPath, HashSet< GamePath > >(),
|
||||
};
|
||||
var optDir = new DirectoryInfo( Path.Combine( groupFolder.FullName, opt.Name!.ReplaceInvalidPathSymbols().RemoveNonAsciiSymbols() ) );
|
||||
var optDir = NewOptionDirectory( groupFolder, opt.Name! );
|
||||
if( optDir.Exists )
|
||||
{
|
||||
foreach( var file in optDir.EnumerateFiles( "*.*", SearchOption.AllDirectories ) )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue