#pragma once #include "Asset/IZoneAssetLoaderState.h" #include "SearchPath/ISearchPath.h" #include #include #include #include class IPakToCreate { public: explicit IPakToCreate(std::string name); void AddImage(std::string imageName); void Build(ISearchPath& searchPath, const std::filesystem::path& outPath); private: std::string m_name; std::vector m_image_names; }; class IPakCreator : public IZoneAssetLoaderState { public: IPakToCreate* GetOrAddIPak(const std::string& ipakName); void Finalize(ISearchPath& searchPath, const std::filesystem::path& outPath); private: std::unordered_map m_ipak_lookup; std::vector> m_ipaks; };