建筑模板(进程级注册表中的定义)。 更多...
#include <BuildingTypes.h>
Public 成员函数 | |
| bool | hasTag (const std::string &tag) const |
| 查询辅助。 | |
| std::string | getExtra (const std::string &key, const std::string &fallback={}) const |
| Returns the extra. | |
| std::string | getVisual2d (const std::string &key, const std::string &fallback={}) const |
| Returns the visual 2 d. | |
| std::string | getVisual3d (const std::string &key, const std::string &fallback={}) const |
| Returns the visual 3 d. | |
| int | getCost (const std::string &resource, int fallback=0) const |
| Returns the cost. | |
| 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 |
| std::string | placementKind = "cell" |
Placement domain: cell (default), edge, corner, or free. | |
| float | freeRadiusCells = 0.25f |
| Circular free-domain collision radius measured in grid-cell units. | |
| float | freeFootprintWidthCells = 0.f |
| Optional oriented-box width in grid-cell units; positive width and height select OBB collision. | |
| float | freeFootprintHeightCells = 0.f |
| Optional oriented-box height in grid-cell units; positive width and height select OBB collision. | |
| std::vector< float > | freeFootprintVertices |
| Optional convex local polygon as x/y pairs in grid-cell units, centered on the free anchor. | |
| std::string | connectionGroup |
| Edge topology compatibility group; empty falls back to building id. | |
| std::string | structuralRole |
| Structural classification such as floor, wall, ceiling, roof, or stair. | |
| std::string | supportMode = "none" |
Structural support policy: none, cell_below, or corner_below. | |
| std::string | supportTag |
| Optional tag required on every supporting instance. | |
| 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 | 自定义。 | |
| float | maxSurfaceSlopeDegrees = 180.f |
| Maximum angle between a footprint normal and the grid-plane up axis. | |
| float | maxSurfaceHeightDelta = -1.f |
| Maximum elevation range across a sampled footprint; negative disables it. | |
| 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 第 100 行定义.
成员函数说明
◆ getCost()
| int eve::building::BuildingDefinition::getCost | ( | const std::string & | resource, |
| int | fallback = 0 |
||
| ) | const |
◆ getExtra()
| std::string eve::building::BuildingDefinition::getExtra | ( | const std::string & | key, |
| const std::string & | fallback = {} |
||
| ) | const |
◆ getVisual2d()
| std::string eve::building::BuildingDefinition::getVisual2d | ( | const std::string & | key, |
| const std::string & | fallback = {} |
||
| ) | const |
◆ getVisual3d()
| std::string eve::building::BuildingDefinition::getVisual3d | ( | const std::string & | key, |
| const std::string & | fallback = {} |
||
| ) | const |
◆ 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 第 42 行定义.
引用了 footprintH, footprintMask, footprintW , 以及 idx.
类成员变量说明
◆ category
| std::string eve::building::BuildingDefinition::category |
在文件 BuildingTypes.h 第 103 行定义.
◆ channel
| std::string eve::building::BuildingDefinition::channel |
占地格子尺寸。
占用通道:同一格允许多通道建筑叠放(如 floor + furniture),空 = 默认通道。
在文件 BuildingTypes.h 第 106 行定义.
被这些函数引用 eve::building::PlacementSystem::canPlaceCorner(), eve::building::PlacementSystem::canPlaceEdge(), eve::building::PlacementSystem::canPlaceFree(), eve::building_editing::BuildingPlacementTarget::makeReplace(), eve::building::PlacementSystem::moveEdgeResult(), eve::building::PlacementSystem::placeAt(), eve::building::PlacementSystem::placeCornerResult(), eve::building::PlacementSystem::placeEdge(), eve::building::PlacementSystem::placeFreeResult(), eve::building::PlacementSystem::placeFreeSurfaceResult(), eve::building::PlacementSystem::placeGhost(), eve::building::PlacementSystem::replaceBuildingResult() , 以及 eve::building::PlacementSystem::restoreExact().
◆ connectionGroup
| std::string eve::building::BuildingDefinition::connectionGroup |
Edge topology compatibility group; empty falls back to building id.
在文件 BuildingTypes.h 第 120 行定义.
被这些函数引用 eve::building::PlacementSystem::edgeConnectionMask().
◆ cost
| std::unordered_map<std::string, int> eve::building::BuildingDefinition::cost |
在文件 BuildingTypes.h 第 149 行定义.
被这些函数引用 getCost().
◆ displayName
| std::string eve::building::BuildingDefinition::displayName |
在文件 BuildingTypes.h 第 102 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding().
◆ extra
| std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::extra |
在文件 BuildingTypes.h 第 150 行定义.
被这些函数引用 getExtra().
◆ footprintH
| int eve::building::BuildingDefinition::footprintH = 1 |
◆ footprintMask
| std::vector<uint8_t> eve::building::BuildingDefinition::footprintMask |
可选占地掩码,长度 footprintW*footprintH;空表示实心矩形。行主序、原点在最小 x/y。
在文件 BuildingTypes.h 第 130 行定义.
被这些函数引用 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 第 144 行定义.
◆ freeFootprintHeightCells
| float eve::building::BuildingDefinition::freeFootprintHeightCells = 0.f |
Optional oriented-box height in grid-cell units; positive width and height select OBB collision.
在文件 BuildingTypes.h 第 116 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding() , 以及 eve::building::PlacementSystem::sampleSurfacePatch().
◆ freeFootprintVertices
| std::vector<float> eve::building::BuildingDefinition::freeFootprintVertices |
Optional convex local polygon as x/y pairs in grid-cell units, centered on the free anchor.
在文件 BuildingTypes.h 第 118 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding() , 以及 eve::building::PlacementSystem::sampleSurfacePatch().
◆ freeFootprintWidthCells
| float eve::building::BuildingDefinition::freeFootprintWidthCells = 0.f |
Optional oriented-box width in grid-cell units; positive width and height select OBB collision.
在文件 BuildingTypes.h 第 114 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding() , 以及 eve::building::PlacementSystem::sampleSurfacePatch().
◆ freeRadiusCells
| float eve::building::BuildingDefinition::freeRadiusCells = 0.25f |
Circular free-domain collision radius measured in grid-cell units.
在文件 BuildingTypes.h 第 112 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding().
◆ id
| std::string eve::building::BuildingDefinition::id |
◆ maxSurfaceHeightDelta
| float eve::building::BuildingDefinition::maxSurfaceHeightDelta = -1.f |
Maximum elevation range across a sampled footprint; negative disables it.
在文件 BuildingTypes.h 第 140 行定义.
被这些函数引用 eve::building::PlacementSystem::moveFreeSurfaceResult() , 以及 eve::building::PlacementSystem::placeFreeSurfaceResult().
◆ maxSurfaceSlopeDegrees
| float eve::building::BuildingDefinition::maxSurfaceSlopeDegrees = 180.f |
Maximum angle between a footprint normal and the grid-plane up axis.
在文件 BuildingTypes.h 第 138 行定义.
被这些函数引用 eve::building::PlacementSystem::moveFreeSurfaceResult(), eve::building::PlacementSystem::placeFreeSurfaceResult() , 以及 eve::building::BuildingRegistry::registerBuilding().
◆ placementKind
| std::string eve::building::BuildingDefinition::placementKind = "cell" |
Placement domain: cell (default), edge, corner, or free.
在文件 BuildingTypes.h 第 110 行定义.
被这些函数引用 eve::building_editing::BuildingPlacementTarget::applyDomainOperation(), eve::building::PlacementSystem::canPlaceCorner(), eve::building::PlacementSystem::canPlaceEdge(), eve::building::PlacementSystem::canPlaceFree(), eve::building_editing::BuildingPlacementTarget::makeReplace(), eve::building::PlacementSystem::placeAt(), eve::building::PlacementSystem::placeFreeSurfaceResult(), eve::building::PlacementSystem::placeGhost(), eve::building::BuildingRegistry::registerBuilding(), eve::building::PlacementSystem::replaceBuildingResult(), eve::building::PlacementSystem::restoreExact() , 以及 eve::building::PlacementSystem::sampleSurfacePatch().
◆ renderMode
| std::string eve::building::BuildingDefinition::renderMode |
视觉形态:"2d" | "3d",空 = 由渲染桥默认(2d)。仅元数据,building 模块不渲染。
在文件 BuildingTypes.h 第 108 行定义.
◆ requireAdjacentTag
| std::string eve::building::BuildingDefinition::requireAdjacentTag |
非空:邻格需有带该 tag 的建筑。
在文件 BuildingTypes.h 第 146 行定义.
◆ requireAdjacentTerrain
| int eve::building::BuildingDefinition::requireAdjacentTerrain = -1 |
>=0:邻格地形语义;-1 = 不限。
在文件 BuildingTypes.h 第 148 行定义.
◆ requireTerrain
| std::vector<int> eve::building::BuildingDefinition::requireTerrain |
空 = 不限制地形语义。
在文件 BuildingTypes.h 第 143 行定义.
◆ rotationMode
| std::string eve::building::BuildingDefinition::rotationMode = "cardinal" |
◆ snapMode
| std::string eve::building::BuildingDefinition::snapMode = "grid" |
grid | cell | free | 自定义。
在文件 BuildingTypes.h 第 132 行定义.
被这些函数引用 eve::building::BuildingRegistry::registerBuilding().
◆ structuralRole
| std::string eve::building::BuildingDefinition::structuralRole |
Structural classification such as floor, wall, ceiling, roof, or stair.
在文件 BuildingTypes.h 第 122 行定义.
◆ supportMode
| std::string eve::building::BuildingDefinition::supportMode = "none" |
Structural support policy: none, cell_below, or corner_below.
在文件 BuildingTypes.h 第 124 行定义.
被这些函数引用 eve::building::PlacementSystem::rebuildStructuralLinksResult() , 以及 eve::building::BuildingRegistry::registerBuilding().
◆ supportTag
| std::string eve::building::BuildingDefinition::supportTag |
Optional tag required on every supporting instance.
在文件 BuildingTypes.h 第 126 行定义.
◆ tags
| std::vector<std::string> eve::building::BuildingDefinition::tags |
在文件 BuildingTypes.h 第 141 行定义.
被这些函数引用 hasTag(), eve::building_editing::BuildingPlacementTarget::makeReplace(), eve::building::PlacementSystem::placeAt(), eve::building::PlacementSystem::placeCornerResult(), eve::building::PlacementSystem::placeEdge(), eve::building::PlacementSystem::placeFreeResult(), eve::building::PlacementSystem::placeFreeSurfaceResult(), eve::building::PlacementSystem::placeGhost(), eve::building::PlacementSystem::replaceBuildingResult() , 以及 eve::building::PlacementSystem::restoreExact().
◆ validateRule
| std::string eve::building::BuildingDefinition::validateRule = "default" |
default | boundsOnly | overlapOk | 自定义。
在文件 BuildingTypes.h 第 136 行定义.
被这些函数引用 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 第 152 行定义.
被这些函数引用 getVisual2d().
◆ visual3d
| std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::visual3d |
3D 视觉元数据:mesh / height / colorR..B / offsetX..Z 等。
在文件 BuildingTypes.h 第 154 行定义.
被这些函数引用 getVisual3d().
该结构体的文档由以下文件生成:
- src/modules/building/BuildingTypes.h
- src/modules/building/BuildingDef.cpp