#pragma once #include #include #include "Zone/ZoneTypes.h" #include "ZoneCreation/IZoneCreator.h" namespace IW4 { class ZoneCreator final : public IZoneCreator { std::unordered_map m_asset_types_by_name; void AddAssetTypeName(asset_type_t assetType, std::string name); static std::vector CreateGdtList(ZoneCreationContext& context); bool CreateIgnoredAssetMap(ZoneCreationContext& context, std::unordered_map& ignoredAssetMap) const; void CreateZoneAssetPools(Zone* zone) const; public: ZoneCreator(); _NODISCARD bool SupportsGame(const std::string& gameName) const override; _NODISCARD std::unique_ptr CreateZoneForDefinition(ZoneCreationContext& context) const override; }; }