diff --git a/OtterGui b/OtterGui index 39e24bae..37789067 160000 --- a/OtterGui +++ b/OtterGui @@ -1 +1 @@ -Subproject commit 39e24baebcb450ccd1e7103fd428ee3020c28702 +Subproject commit 377890671cba2e9edb8e792be3bf8f0a84a8b741 diff --git a/Penumbra/Mods/Editor/ModFileCollection.cs b/Penumbra/Mods/Editor/ModFileCollection.cs index 9905fbcb..fa3d5614 100644 --- a/Penumbra/Mods/Editor/ModFileCollection.cs +++ b/Penumbra/Mods/Editor/ModFileCollection.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Threading; using Microsoft.Win32; +using OtterGui; using Penumbra.String.Classes; namespace Penumbra.Mods; @@ -113,7 +114,7 @@ public class ModFileCollection : IDisposable tok.ThrowIfCancellationRequested(); ClearFiles(); - foreach (var file in mod.ModPath.EnumerateDirectories().SelectMany(d => d.EnumerateFiles("*.*", SearchOption.AllDirectories))) + foreach (var file in mod.ModPath.EnumerateDirectories().Where(d => !d.IsHidden()).SelectMany(FileExtensions.EnumerateNonHiddenFiles)) { tok.ThrowIfCancellationRequested(); if (!FileRegistry.FromFile(mod.ModPath, file, out var registry)) diff --git a/Penumbra/Mods/Mod.Creator.cs b/Penumbra/Mods/Mod.Creator.cs index 97b4fe4a..6233ece9 100644 --- a/Penumbra/Mods/Mod.Creator.cs +++ b/Penumbra/Mods/Mod.Creator.cs @@ -6,6 +6,7 @@ using System.Text; using System.Text.RegularExpressions; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using OtterGui; using OtterGui.Filesystem; using Penumbra.Api.Enums; using Penumbra.Import.Structs; @@ -98,7 +99,7 @@ internal static partial class ModCreator /// Create the data for a given sub mod from its data and the folder it is based on. public static ISubMod CreateSubMod( DirectoryInfo baseFolder, DirectoryInfo optionFolder, OptionList option ) { - var list = optionFolder.EnumerateFiles( "*.*", SearchOption.AllDirectories ) + var list = optionFolder.EnumerateNonHiddenFiles() .Select( f => ( Utf8GamePath.FromFile( f, optionFolder, out var gamePath, true ), gamePath, new FullPath( f ) ) ) .Where( t => t.Item1 ); diff --git a/Penumbra/Mods/Mod.Files.cs b/Penumbra/Mods/Mod.Files.cs index 4528bb22..8326b4fb 100644 --- a/Penumbra/Mods/Mod.Files.cs +++ b/Penumbra/Mods/Mod.Files.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using Newtonsoft.Json.Linq; +using OtterGui; using Penumbra.Api.Enums; using Penumbra.Meta.Manipulations; using Penumbra.String.Classes; @@ -40,9 +41,8 @@ public partial class Mod { var modFiles = AllFiles.ToHashSet(); return ModPath.EnumerateDirectories() - .Where(d => !d.Attributes.HasFlag( FileAttributes.Hidden ) ) - .SelectMany(f => f.EnumerateFiles("*", SearchOption.AllDirectories)) - .Where( f => !f.Attributes.HasFlag( FileAttributes.Hidden ) ) + .Where(d => !d.IsHidden()) + .SelectMany(FileExtensions.EnumerateNonHiddenFiles) .Select(f => new FullPath(f)) .Where(f => !modFiles.Contains(f)) .ToList();