载入中...
搜索中...
未找到
eve::building::BuildingDefinition结构体 参考

建筑模板(进程级注册表中的定义)。 更多...

#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.h16 行定义.

成员函数说明

◆ getCost()

int eve::building::BuildingDefinition::getCost ( const std::string &  resource,
int  fallback = 0 
) const

在文件 BuildingDef.cpp33 行定义.

引用了 cost.

◆ getExtra()

std::string eve::building::BuildingDefinition::getExtra ( const std::string &  key,
const std::string &  fallback = {} 
) const

在文件 BuildingDef.cpp15 行定义.

引用了 extra.

◆ getVisual2d()

std::string eve::building::BuildingDefinition::getVisual2d ( const std::string &  key,
const std::string &  fallback = {} 
) const

在文件 BuildingDef.cpp21 行定义.

引用了 visual2d.

◆ getVisual3d()

std::string eve::building::BuildingDefinition::getVisual3d ( const std::string &  key,
const std::string &  fallback = {} 
) const

在文件 BuildingDef.cpp27 行定义.

引用了 visual3d.

◆ hasTag()

bool eve::building::BuildingDefinition::hasTag ( const std::string &  tag) const

查询辅助。

在文件 BuildingDef.cpp11 行定义.

引用了 tags.

◆ maskAt()

bool eve::building::BuildingDefinition::maskAt ( int  localX,
int  localY 
) const

占地掩码在局部坐标 (localX, localY) 处是否占用。

在文件 BuildingDef.cpp38 行定义.

引用了 footprintH, footprintMask, footprintW , 以及 idx.

类成员变量说明

◆ category

std::string eve::building::BuildingDefinition::category

在文件 BuildingTypes.h19 行定义.

◆ channel

std::string eve::building::BuildingDefinition::channel

占地格子尺寸。

占用通道:同一格允许多通道建筑叠放(如 floor + furniture),空 = 默认通道。

在文件 BuildingTypes.h22 行定义.

被这些函数引用 eve::building::PlacementSystem::placeAt().

◆ cost

std::unordered_map<std::string, int> eve::building::BuildingDefinition::cost

在文件 BuildingTypes.h43 行定义.

被这些函数引用 getCost().

◆ displayName

std::string eve::building::BuildingDefinition::displayName

在文件 BuildingTypes.h18 行定义.

被这些函数引用 eve::building::BuildingRegistry::registerBuilding().

◆ extra

std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::extra

在文件 BuildingTypes.h44 行定义.

被这些函数引用 getExtra().

◆ footprintH

◆ footprintMask

std::vector<uint8_t> eve::building::BuildingDefinition::footprintMask

可选占地掩码,长度 footprintW*footprintH;空表示实心矩形。行主序、原点在最小 x/y。

在文件 BuildingTypes.h28 行定义.

被这些函数引用 eve::building::PlacementSystem::effectiveFootprint(), eve::building::PlacementSystem::foreachFootprintCell(), maskAt() , 以及 eve::building::BuildingRegistry::registerBuilding().

◆ footprintW

◆ forbidTerrain

std::vector<int> eve::building::BuildingDefinition::forbidTerrain

在文件 BuildingTypes.h38 行定义.

◆ id

std::string eve::building::BuildingDefinition::id

◆ renderMode

std::string eve::building::BuildingDefinition::renderMode

视觉形态:"2d" | "3d",空 = 由渲染桥默认(2d)。仅元数据,building 模块不渲染。

在文件 BuildingTypes.h24 行定义.

◆ requireAdjacentTag

std::string eve::building::BuildingDefinition::requireAdjacentTag

非空:邻格需有带该 tag 的建筑。

在文件 BuildingTypes.h40 行定义.

◆ requireAdjacentTerrain

int eve::building::BuildingDefinition::requireAdjacentTerrain = -1

>=0:邻格地形语义;-1 = 不限。

在文件 BuildingTypes.h42 行定义.

◆ requireTerrain

std::vector<int> eve::building::BuildingDefinition::requireTerrain

空 = 不限制地形语义。

在文件 BuildingTypes.h37 行定义.

◆ rotationMode

std::string eve::building::BuildingDefinition::rotationMode = "cardinal"

◆ snapMode

std::string eve::building::BuildingDefinition::snapMode = "grid"

grid | cell | free | 自定义。

在文件 BuildingTypes.h30 行定义.

被这些函数引用 eve::building::BuildingRegistry::registerBuilding().

◆ tags

std::vector<std::string> eve::building::BuildingDefinition::tags

在文件 BuildingTypes.h35 行定义.

被这些函数引用 hasTag() , 以及 eve::building::PlacementSystem::placeAt().

◆ validateRule

std::string eve::building::BuildingDefinition::validateRule = "default"

default | boundsOnly | overlapOk | 自定义。

在文件 BuildingTypes.h34 行定义.

被这些函数引用 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.h46 行定义.

被这些函数引用 getVisual2d().

◆ visual3d

std::unordered_map<std::string, std::string> eve::building::BuildingDefinition::visual3d

3D 视觉元数据:mesh / height / colorR..B / offsetX..Z 等。

在文件 BuildingTypes.h48 行定义.

被这些函数引用 getVisual3d().


该结构体的文档由以下文件生成: