建筑模板(进程级注册表中的定义)。 更多...
#include <BuildingTypes.h>
Public 成员函数 | |
| bool | hasTag (const std::string &tag) const |
| 查询辅助。 | |
| std::string | getExtra (const std::string &key, const std::string &fallback={}) const |
| std::string | getVisual2d (const std::string &key, const std::string &fallback={}) const |
| std::string | getVisual3d (const std::string &key, const std::string &fallback={}) const |
| int | getCost (const std::string &resource, int fallback=0) const |
| bool | maskAt (int localX, int localY) const |
| 占地掩码在局部坐标 (localX, localY) 处是否占用。 | |
Public 属性 | |
| std::string | id |
| std::string | displayName |
| std::string | category |
| std::string | channel |
| 占地格子尺寸。 | |
| std::string | renderMode |
| int | footprintW = 1 |
| int | footprintH = 1 |
| std::vector< uint8_t > | footprintMask |
| 可选占地掩码,长度 footprintW*footprintH;空表示实心矩形。行主序、原点在最小 x/y。 | |
| std::string | snapMode = "grid" |
| grid | cell | free | 自定义。 | |
| std::string | rotationMode = "cardinal" |
| none | cardinal | free。 | |
| std::string | validateRule = "default" |
| default | boundsOnly | overlapOk | 自定义。 | |
| std::vector< std::string > | tags |
| std::vector< int > | requireTerrain |
| 空 = 不限制地形语义。 | |
| std::vector< int > | forbidTerrain |
| std::string | requireAdjacentTag |
| 非空:邻格需有带该 tag 的建筑。 | |
| int | requireAdjacentTerrain = -1 |
| >=0:邻格地形语义;-1 = 不限。 | |
| std::unordered_map< std::string, int > | cost |
| std::unordered_map< std::string, std::string > | extra |
| std::unordered_map< std::string, std::string > | visual2d |
| std::unordered_map< std::string, std::string > | visual3d |
详细描述
建筑模板(进程级注册表中的定义)。
在文件 BuildingTypes.h 第 16 行定义.
成员函数说明
◆ getCost()
| int eve::building::BuildingDefinition::getCost | ( | const std::string & | resource, |
| int | fallback = 0 |
||
| ) | const |
在文件 BuildingDef.cpp 第 33 行定义.
引用了 cost.
◆ getExtra()
| std::string eve::building::BuildingDefinition::getExtra | ( | const std::string & | key, |
| const std::string & | fallback = {} |
||
| ) | const |
在文件 BuildingDef.cpp 第 15 行定义.
引用了 extra.
◆ getVisual2d()
| std::string eve::building::BuildingDefinition::getVisual2d | ( | const std::string & | key, |
| const std::string & | fallback = {} |
||
| ) | const |
在文件 BuildingDef.cpp 第 21 行定义.
引用了 visual2d.
◆ getVisual3d()
| std::string eve::building::BuildingDefinition::getVisual3d | ( | const std::string & | key, |
| const std::string & | fallback = {} |
||
| ) | const |
在文件 BuildingDef.cpp 第 27 行定义.
引用了 visual3d.
◆ hasTag()
| bool eve::building::BuildingDefinition::hasTag | ( | const std::string & | tag | ) | const |
◆ maskAt()
| bool eve::building::BuildingDefinition::maskAt | ( | int | localX, |
| int | localY | ||
| ) | const |
占地掩码在局部坐标 (localX, localY) 处是否占用。
在文件 BuildingDef.cpp 第 38 行定义.
引用了 footprintH, footprintMask, footprintW , 以及 idx.
类成员变量说明
◆ category
| std::string eve::building::BuildingDefinition::category |
在文件 BuildingTypes.h 第 19 行定义.
◆ channel
| std::string eve::building::BuildingDefinition::channel |
◆ cost
| std::unordered_map<std::string, int> eve::building::BuildingDefinition::cost |
在文件 BuildingTypes.h 第 43 行定义.
被这些函数引用 getCost().
◆ displayName
| std::string eve::building::BuildingDefinition::displayName |
在文件 BuildingTypes.h 第 18 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding().
◆ extra
| std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::extra |
在文件 BuildingTypes.h 第 44 行定义.
被这些函数引用 getExtra().
◆ footprintH
| int eve::building::BuildingDefinition::footprintH = 1 |
◆ footprintMask
| std::vector<uint8_t> eve::building::BuildingDefinition::footprintMask |
可选占地掩码,长度 footprintW*footprintH;空表示实心矩形。行主序、原点在最小 x/y。
在文件 BuildingTypes.h 第 28 行定义.
被这些函数引用 eve::building::PlacementSystem::effectiveFootprint(), eve::building::PlacementSystem::foreachFootprintCell(), maskAt() , 以及 eve::building::BuildingRegistry::registerBuilding().
◆ footprintW
| int eve::building::BuildingDefinition::footprintW = 1 |
◆ forbidTerrain
| std::vector<int> eve::building::BuildingDefinition::forbidTerrain |
在文件 BuildingTypes.h 第 38 行定义.
◆ id
| std::string eve::building::BuildingDefinition::id |
◆ renderMode
| std::string eve::building::BuildingDefinition::renderMode |
视觉形态:"2d" | "3d",空 = 由渲染桥默认(2d)。仅元数据,building 模块不渲染。
在文件 BuildingTypes.h 第 24 行定义.
◆ requireAdjacentTag
| std::string eve::building::BuildingDefinition::requireAdjacentTag |
非空:邻格需有带该 tag 的建筑。
在文件 BuildingTypes.h 第 40 行定义.
◆ requireAdjacentTerrain
| int eve::building::BuildingDefinition::requireAdjacentTerrain = -1 |
>=0:邻格地形语义;-1 = 不限。
在文件 BuildingTypes.h 第 42 行定义.
◆ requireTerrain
| std::vector<int> eve::building::BuildingDefinition::requireTerrain |
空 = 不限制地形语义。
在文件 BuildingTypes.h 第 37 行定义.
◆ rotationMode
| std::string eve::building::BuildingDefinition::rotationMode = "cardinal" |
◆ snapMode
| std::string eve::building::BuildingDefinition::snapMode = "grid" |
grid | cell | free | 自定义。
在文件 BuildingTypes.h 第 30 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding().
◆ tags
| std::vector<std::string> eve::building::BuildingDefinition::tags |
在文件 BuildingTypes.h 第 35 行定义.
被这些函数引用 hasTag() , 以及 eve::building::PlacementSystem::placeAt().
◆ validateRule
| std::string eve::building::BuildingDefinition::validateRule = "default" |
default | boundsOnly | overlapOk | 自定义。
在文件 BuildingTypes.h 第 34 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding().
◆ visual2d
| std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::visual2d |
2D 视觉元数据:texture / frame / anchorX / anchorY / layer / colorR..B 等。
在文件 BuildingTypes.h 第 46 行定义.
被这些函数引用 getVisual2d().
◆ visual3d
| std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::visual3d |
3D 视觉元数据:mesh / height / colorR..B / offsetX..Z 等。
在文件 BuildingTypes.h 第 48 行定义.
被这些函数引用 getVisual3d().
该结构体的文档由以下文件生成:
- src/modules/building/BuildingTypes.h
- src/modules/building/BuildingDef.cpp