diff --git a/AssetStudio/Classes/Texture2D.cs b/AssetStudio/Classes/Texture2D.cs index 200a6ea..f138eab 100644 --- a/AssetStudio/Classes/Texture2D.cs +++ b/AssetStudio/Classes/Texture2D.cs @@ -26,7 +26,7 @@ namespace AssetStudio m_Name = $"{m_Texture2DArray.m_Name}_{layer + 1}"; type = ClassIDType.Texture2DArrayImage; - m_PathID = -1; + m_PathID = m_Texture2DArray.m_PathID; m_Width = m_Texture2DArray.m_Width; m_Height = m_Texture2DArray.m_Height; diff --git a/AssetStudioGUI/AssetStudioGUIForm.cs b/AssetStudioGUI/AssetStudioGUIForm.cs index 41abe8b..7428b3b 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.cs @@ -1894,6 +1894,19 @@ namespace AssetStudioGUI toExportAssets = visibleAssets; break; } + + if (toExportAssets != null && filterTypeToolStripMenuItem.DropDownItems.ContainsKey("Texture2DArray")) + { + var tex2dArrayImgPathIdSet = toExportAssets.FindAll(x => x.Type == ClassIDType.Texture2DArrayImage).Select(x => x.m_PathID).ToHashSet(); + foreach (var pathId in tex2dArrayImgPathIdSet) + { + toExportAssets = toExportAssets.Where(x => + x.Type != ClassIDType.Texture2DArray + || (x.Type == ClassIDType.Texture2DArray && x.m_PathID != pathId)) + .ToList(); + } + } + Studio.ExportAssets(saveFolderDialog.Folder, toExportAssets, exportType); } }