房屋组件注册表(按 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 | ( | ) |
◆ completePacks()
| std::vector< std::string > eve::housegen::HouseComponentLibrary::completePacks | ( | ) | const |
◆ count()
| int eve::housegen::HouseComponentLibrary::count | ( | ) | const |
组件总数。
在文件 HouseComponentLibrary.cpp 第 196 行定义.
◆ 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()
| eve::Result< void > eve::housegen::HouseComponentLibrary::loadFromJson | ( | std::string_view | json | ) |
从 JSON / 文件加载组件。
在文件 HouseComponentLibrary.cpp 第 141 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::Value::isArray(), eve::json::Document::parse(), eve::ParseError, registerComponent(), eve::json::Document::root(), root, eve::Status::success(), eve::Result< T >::success(), eve::json::Document::valid() , 以及 values.
被这些函数引用 eve::housegen::HouseGen::loadComponentsFromJson() , 以及 loadFromFile().
◆ 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().
该类的文档由以下文件生成:
- src/modules/procgen/house/HouseComponentLibrary.h
- src/modules/procgen/house/HouseComponentLibrary.cpp