#pragma once #include "Asset/IZoneAssetCreationState.h" #include "SearchPath/IOutputPath.h" #include "SearchPath/ISearchPath.h" #include #include #include class IwdToCreate { public: explicit IwdToCreate(std::string name); void AddFile(std::string filePath); void Build(ISearchPath& searchPath, IOutputPath& outPath); [[nodiscard]] const std::vector& GetFilePaths() const; private: std::string m_name; std::vector m_file_paths; }; class IwdCreator final : public IZoneAssetCreationState { public: IwdToCreate* GetOrAddIwd(const std::string& iwdName); void Finalize(ISearchPath& searchPath, IOutputPath& outPath); private: std::unordered_map m_iwd_lookup; std::vector> m_iwds; };