Add possibility to include asset lists in project definition

This commit is contained in:
Jan
2023-10-07 15:06:41 +02:00
parent e4fd8543e3
commit fb5c67b5ce
18 changed files with 142 additions and 70 deletions

View File

@ -1,5 +1,6 @@
#pragma once
#include <string>
#include <vector>
class AssetListEntry
{
@ -10,3 +11,9 @@ public:
AssetListEntry();
AssetListEntry(std::string type, std::string name);
};
class AssetList
{
public:
std::vector<AssetListEntry> m_entries;
};

View File

@ -29,7 +29,15 @@ void ZoneDefinition::AddMetaData(std::string key, std::string value)
m_metadata_lookup.emplace(std::make_pair(metaDataPtr->m_key, metaDataPtr));
}
void ZoneDefinition::Include(ZoneDefinition& definitionToInclude)
void ZoneDefinition::Include(const AssetList& assetListToInclude)
{
for (const auto& entry : assetListToInclude.m_entries)
{
m_assets.emplace_back(entry.m_type, entry.m_name, false);
}
}
void ZoneDefinition::Include(const ZoneDefinition& definitionToInclude)
{
for (const auto& metaData : definitionToInclude.m_metadata)
{

View File

@ -5,6 +5,8 @@
#include <unordered_map>
#include <vector>
#include "Zone/AssetList/AssetList.h"
class ZoneDefinitionEntry
{
public:
@ -33,9 +35,11 @@ public:
std::vector<std::unique_ptr<ZoneMetaDataEntry>> m_metadata;
std::unordered_multimap<std::string, ZoneMetaDataEntry*> m_metadata_lookup;
std::vector<std::string> m_includes;
std::vector<std::string> m_asset_lists;
std::vector<std::string> m_ignores;
std::vector<ZoneDefinitionEntry> m_assets;
void AddMetaData(std::string key, std::string value);
void Include(ZoneDefinition& definitionToInclude);
void Include(const AssetList& assetListToInclude);
void Include(const ZoneDefinition& definitionToInclude);
};