2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-10-23 14:55:52 +00:00

feat: report on unlinking progress

This commit is contained in:
Jan Laupetin
2025-10-14 23:20:56 +01:00
parent 9fa41ca0d3
commit c6e9cbedda
159 changed files with 686 additions and 802 deletions

View File

@@ -4,25 +4,32 @@
template<class T> class AbstractAssetDumper : public IAssetDumper<T>
{
public:
[[nodiscard]] size_t GetProgressTotalCount(const AssetPool<T>& pool) const override
{
return pool.m_asset_lookup.size();
}
void DumpPool(AssetDumpingContext& context, const AssetPool<T>& pool) override
{
for (const auto* assetInfo : pool)
{
if (assetInfo->m_name[0] == ',' || !ShouldDump(*assetInfo))
{
context.IncrementProgress();
continue;
}
DumpAsset(context, *assetInfo);
context.IncrementProgress();
}
}
protected:
virtual bool ShouldDump(XAssetInfo<T>* asset)
virtual bool ShouldDump(const XAssetInfo<T>& asset)
{
return true;
}
virtual void DumpAsset(AssetDumpingContext& context, XAssetInfo<T>* asset) = 0;
public:
void DumpPool(AssetDumpingContext& context, AssetPool<T>* pool) override
{
for (auto assetInfo : *pool)
{
if (assetInfo->m_name[0] == ',' || !ShouldDump(assetInfo))
{
continue;
}
DumpAsset(context, assetInfo);
}
}
virtual void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T>& asset) = 0;
};