#pragma once #include "AssetCreationContext.h" #include "AssetCreationResult.h" #include "Game/IAsset.h" #include "Pool/XAssetInfo.h" #include "SearchPath/ISearchPath.h" #include "Utils/MemoryManager.h" #include "Zone/ZoneTypes.h" #include #include class AssetCreationContext; class IAssetPostProcessor { public: IAssetPostProcessor() = default; virtual ~IAssetPostProcessor() = default; IAssetPostProcessor(const IAssetPostProcessor& other) = default; IAssetPostProcessor(IAssetPostProcessor&& other) noexcept = default; IAssetPostProcessor& operator=(const IAssetPostProcessor& other) = default; IAssetPostProcessor& operator=(IAssetPostProcessor&& other) noexcept = default; [[nodiscard]] virtual asset_type_t GetHandlingAssetType() const = 0; virtual void PostProcessAsset(XAssetInfoGeneric& assetInfo, AssetCreationContext& context) = 0; virtual void FinalizeZone(AssetCreationContext& context) {}; };