From 94c8b355fe2c281a3fb4ec3564fd29b4516b0b23 Mon Sep 17 00:00:00 2001 From: VaDiM Date: Mon, 14 Aug 2023 00:25:53 +0300 Subject: [PATCH] [CLI] Fix asset filter - Fixed sprite export in sprite only mode --- AssetStudio/AssetsManager.cs | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/AssetStudio/AssetsManager.cs b/AssetStudio/AssetsManager.cs index acb142c..1bc3543 100644 --- a/AssetStudio/AssetsManager.cs +++ b/AssetStudio/AssetsManager.cs @@ -12,7 +12,7 @@ namespace AssetStudio { public string SpecifyUnityVersion; public List assetsFileList = new List(); - private List filteredAssetTypesList = new List(); + private HashSet filteredAssetTypesList = new HashSet(); internal Dictionary assetsFileIndexCache = new Dictionary(StringComparer.OrdinalIgnoreCase); internal Dictionary resourceFileReaders = new Dictionary(StringComparer.OrdinalIgnoreCase); @@ -22,35 +22,32 @@ namespace AssetStudio private HashSet noexistFiles = new HashSet(StringComparer.OrdinalIgnoreCase); private HashSet assetsFileListHash = new HashSet(StringComparer.OrdinalIgnoreCase); - public void SetAssetFilter(ClassIDType classIDType) + public void SetAssetFilter(params ClassIDType[] classIDTypes) { if (filteredAssetTypesList.Count == 0) { - filteredAssetTypesList.AddRange(new List + filteredAssetTypesList.UnionWith(new HashSet { ClassIDType.AssetBundle, ClassIDType.ResourceManager, }); } - if (classIDType == ClassIDType.MonoBehaviour) + if (classIDTypes.Contains(ClassIDType.MonoBehaviour)) { - filteredAssetTypesList.AddRange(new List - { - ClassIDType.MonoScript, - ClassIDType.MonoBehaviour - }); + filteredAssetTypesList.Add(ClassIDType.MonoScript); } - else + if (classIDTypes.Contains(ClassIDType.Sprite)) { - filteredAssetTypesList.Add(classIDType); + filteredAssetTypesList.Add(ClassIDType.Texture2D); } + + filteredAssetTypesList.UnionWith(classIDTypes); } public void SetAssetFilter(List classIDTypeList) { - foreach (ClassIDType classIDType in classIDTypeList) - SetAssetFilter(classIDType); + SetAssetFilter(classIDTypeList.ToArray()); } public void LoadFilesAndFolders(params string[] path)