[GUI] Improve export of Texture2DArray images

- Do not export an entire tex2darray array if both the tex2darray and some of its images were selected for exporting
This commit is contained in:
VaDiM 2024-03-05 16:34:48 +03:00
parent 0f9afa60d7
commit 46f8023756
2 changed files with 14 additions and 1 deletions

View File

@ -26,7 +26,7 @@ namespace AssetStudio
m_Name = $"{m_Texture2DArray.m_Name}_{layer + 1}"; m_Name = $"{m_Texture2DArray.m_Name}_{layer + 1}";
type = ClassIDType.Texture2DArrayImage; type = ClassIDType.Texture2DArrayImage;
m_PathID = -1; m_PathID = m_Texture2DArray.m_PathID;
m_Width = m_Texture2DArray.m_Width; m_Width = m_Texture2DArray.m_Width;
m_Height = m_Texture2DArray.m_Height; m_Height = m_Texture2DArray.m_Height;

View File

@ -1894,6 +1894,19 @@ namespace AssetStudioGUI
toExportAssets = visibleAssets; toExportAssets = visibleAssets;
break; 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); Studio.ExportAssets(saveFolderDialog.Folder, toExportAssets, exportType);
} }
} }