Files
OpenAssetTools/src/ZoneCommon/Zone/Definition/ZoneDefinition.cpp

45 lines
1.3 KiB
C++

#include "ZoneDefinition.h"
ZoneDefinitionAsset::ZoneDefinitionAsset(const asset_type_t type, std::string name, const bool isReference)
: m_asset_type(type),
m_asset_name(std::move(name)),
m_is_reference(isReference)
{
}
ZoneDefinitionProperties::ZoneDefinitionProperties() = default;
void ZoneDefinitionProperties::AddProperty(std::string key, std::string value)
{
m_properties.emplace(std::move(key), std::move(value));
}
void ZoneDefinitionProperties::Include(const ZoneDefinitionProperties& otherProperties)
{
for (const auto& property : otherProperties.m_properties)
AddProperty(property.first, property.second);
}
ZoneDefinition::ZoneDefinition()
: m_type(ProjectType::NONE),
m_game(GameId::COUNT)
{
}
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)
{
m_properties.Include(definitionToInclude.m_properties);
for (const auto& ignore : definitionToInclude.m_ignores)
m_ignores.emplace_back(ignore);
for (const auto& asset : definitionToInclude.m_assets)
m_assets.emplace_back(asset);
}