#include "OncePerTemplateRenderingContext.h" #include "Domain/Computations/StructureComputations.h" #include OncePerTemplateRenderingContext::OncePerTemplateRenderingContext(std::string game, const Architecture gameArchitecture, std::vector fastFileBlocks, std::vector assets) : BaseRenderingContext(std::move(game), gameArchitecture, std::move(fastFileBlocks)), m_assets(std::move(assets)) { for (const auto* block : m_blocks) { if (block->m_is_default) { if (block->m_type == FastFileBlockType::NORMAL && m_default_normal_block == nullptr) m_default_normal_block = block; else if (block->m_type == FastFileBlockType::TEMP && m_default_temp_block == nullptr) m_default_temp_block = block; } } } std::unique_ptr OncePerTemplateRenderingContext::BuildContext(const IDataRepository* repository) { std::vector assetInformation; for (auto* info : repository->GetAllStructureInformation()) { if (!StructureComputations(info).IsAsset()) continue; assetInformation.emplace_back(info); } return std::make_unique( OncePerTemplateRenderingContext(repository->GetGameName(), repository->GetArchitecture(), repository->GetAllFastFileBlocks(), assetInformation)); }