载入中...
搜索中...
未找到
eve::housegen::HouseComponentLibrary类 参考

房屋组件注册表(按 id 索引,支持分类/风格查询)。 更多...

#include <HouseComponentLibrary.h>

Public 成员函数

eve::Result< void > loadFromJson (std::string_view json)
 从 JSON / 文件加载组件。
 
eve::Result< void > loadFromFile (std::string_view filename)
 
eve::Result< void > registerComponent (const HouseComponent &component)
 注册单个组件(id 重复会报错)。
 
void clear ()
 清空注册表。
 
eve::OptionalRef< const HouseComponent > find (std::string_view id) const
 按 id 查询组件;缺失是正常查询结果。
 
std::vector< std::string > ids () const
 全部组件 id。
 
std::vector< std::reference_wrapper< const HouseComponent > > byCategory (std::string_view category, std::string_view style={}) const
 按分类(可选风格)查询组件。
 
bool hasCompletePack (std::string_view style) const
 报告一个风格是否构成完整组件包。
 
std::vector< std::string > completePacks () const
 所有能构成完整组件包(五个核心分类齐全)的风格标签。
 
int count () const
 组件总数。
 

详细描述

房屋组件注册表(按 id 索引,支持分类/风格查询)。

在文件 HouseComponentLibrary.h 第 18 行定义.

成员函数说明

◆ byCategory()

std::vector< std::reference_wrapper< const HouseComponent > > eve::housegen::HouseComponentLibrary::byCategory ( std::string_view  category,
std::string_view  style = {} 
) const

按分类(可选风格)查询组件。

在文件 HouseComponentLibrary.cpp 第 206 行定义.

引用了 byCategory(), category, left , 以及 right.

被这些函数引用 byCategory().

◆ clear()

void eve::housegen::HouseComponentLibrary::clear ( )

清空注册表。

在文件 HouseComponentLibrary.cpp 第 188 行定义.

被这些函数引用 eve::housegen::HouseGen::clearComponents().

◆ completePacks()

std::vector< std::string > eve::housegen::HouseComponentLibrary::completePacks ( ) const

所有能构成完整组件包(五个核心分类齐全)的风格标签。

在文件 HouseComponentLibrary.cpp 第 236 行定义.

引用了 hasCompletePack() , 以及 tag.

◆ count()

int eve::housegen::HouseComponentLibrary::count ( ) const

组件总数。

在文件 HouseComponentLibrary.cpp 第 196 行定义.

被这些函数引用 eve::housegen::HouseGen::getComponentCount().

◆ find()

eve::OptionalRef< const HouseComponent > eve::housegen::HouseComponentLibrary::find ( std::string_view  id) const

按 id 查询组件;缺失是正常查询结果。

在文件 HouseComponentLibrary.cpp 第 190 行定义.

被这些函数引用 eve::housegen::HouseLayout::instantiate() , 以及 eve::housegen::HouseLayout::validate().

◆ hasCompletePack()

bool eve::housegen::HouseComponentLibrary::hasCompletePack ( std::string_view  style) const

报告一个风格是否构成完整组件包。

参数
style风格标签;空表示未指定。
返回
当 foundation/floor/wall/door/roof 五个核心分类在该风格下都有组件时为 true。
备注
完整包保证按风格生成时不会退化为与无风格组件混搭(见 byCategory 的回退)。

在文件 HouseComponentLibrary.cpp 第 220 行定义.

引用了 category.

被这些函数引用 completePacks().

◆ ids()

std::vector< std::string > eve::housegen::HouseComponentLibrary::ids ( ) const

全部组件 id。

在文件 HouseComponentLibrary.cpp 第 198 行定义.

◆ loadFromFile()

eve::Result< void > eve::housegen::HouseComponentLibrary::loadFromFile ( std::string_view  filename)

◆ loadFromJson()

◆ registerComponent()

eve::Result< void > eve::housegen::HouseComponentLibrary::registerComponent ( const HouseComponent &  component)

注册单个组件(id 重复会报错)。

在文件 HouseComponentLibrary.cpp 第 100 行定义.

引用了 eve::Applied, eve::housegen::HouseMaterialOverride::baseColorA, eve::housegen::HouseMaterialOverride::baseColorB, eve::housegen::HouseMaterialOverride::baseColorG, eve::housegen::HouseMaterialOverride::baseColorR, eve::housegen::HouseComponent::category, eve::housegen::HouseMaterialOverride::cellBombRotation, eve::housegen::HouseMaterialOverride::cellBombScale, eve::housegen::HouseMaterialOverride::cellBombStrength, eve::Conflict, eve::housegen::HouseComponent::depth, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::housegen::HouseMaterialOverride::hasBaseColor, eve::housegen::HouseMaterialOverride::hasMetallic, eve::housegen::HouseMaterialOverride::hasRoughness, eve::housegen::HouseComponent::height, eve::housegen::HouseComponent::id, eve::InvalidArgument, eve::housegen::HouseComponent::material, eve::housegen::HouseMaterialOverride::metallic, eve::housegen::HouseComponent::modelPath, eve::housegen::HouseMaterialOverride::parallaxMaxLayers, eve::housegen::HouseMaterialOverride::parallaxMinLayers, eve::housegen::HouseMaterialOverride::parallaxScale, rotation, eve::housegen::HouseComponent::rotations, eve::housegen::HouseMaterialOverride::roughness, eve::Status::success(), eve::Result< T >::success(), value, eve::housegen::HouseComponent::weight , 以及 eve::housegen::HouseComponent::width.

被这些函数引用 loadFromJson(), eve::housegen_editing::HouseGenDocumentTarget::makeCreateComponent(), eve::housegen_editing::HouseGenPreviewRuntime::publish() , 以及 eve::housegen_editing::HouseGenDocumentTarget::validate().


该类的文档由以下文件生成: