#pragma once #include "Dumping/AssetDumpingContext.h" #include "Dumping/IAssetDumper.h" #include #include class IObjWriter { public: IObjWriter() = default; virtual ~IObjWriter() = default; IObjWriter(const IObjWriter& other) = default; IObjWriter(IObjWriter&& other) noexcept = default; IObjWriter& operator=(const IObjWriter& other) = default; IObjWriter& operator=(IObjWriter&& other) noexcept = default; bool DumpZone(AssetDumpingContext& context); static IObjWriter* GetObjWriterForGame(GameId game); protected: virtual void RegisterAssetDumpers(AssetDumpingContext& context) = 0; void RegisterAssetDumper(std::unique_ptr dumper); private: std::vector> m_asset_dumpers; };