#pragma once #include "IAssetDumper.h" template class AbstractAssetDumper : public IAssetDumper { protected: virtual bool ShouldDump(XAssetInfo* asset) { return true; } virtual void DumpAsset(AssetDumpingContext& context, XAssetInfo* asset) = 0; public: void DumpPool(AssetDumpingContext& context, AssetPool* pool) override { for (auto assetInfo : *pool) { if (assetInfo->m_name[0] == ',' || !ShouldDump(assetInfo)) { continue; } DumpAsset(context, assetInfo); } } };