载入中...
搜索中...
未找到
Building.cpp
浏览该文件的文档.
static int loadFromJson(const std::string &json, std::string *error=nullptr)
从 JSON 数组或单对象批量注册,返回成功数量。 元素形如: { "id": "house.wood", "displayName": "木屋", "category": "housing",...
Definition BuildingDef.cpp:126
static const BuildingDefinition * find(const std::string &id)
Definition BuildingDef.cpp:80
std::string getBuildingRotationMode(const std::string &buildingId)
Definition Building.cpp:49
int registerBuildingsFromJson(const std::string &json)
从 JSON 注册建筑模板;返回成功注册数量。
Definition Building.cpp:11
bool hasSnapRule(const std::string &name)
Definition Building.cpp:116
int getChangeEventInstanceId(int index) const
Definition Building.cpp:160
std::string getBuildingDisplayName(const std::string &buildingId)
Definition Building.cpp:24
void setPlaneSurfaceHeight(float h)
Definition Building.cpp:134
std::string getChangeEventBuildingId(int index) const
Definition Building.cpp:154
std::string getBuildingVisual3d(const std::string &buildingId, const std::string &key, const std::string &fallback={})
Definition Building.cpp:75
float getChangeEventRotation(int index) const
Definition Building.cpp:190
int getBuildingFootprintW(const std::string &buildingId)
Definition Building.cpp:34
std::string getBuildingSnapMode(const std::string &buildingId)
Definition Building.cpp:44
std::string getBuildingExtra(const std::string &buildingId, const std::string &key, const std::string &fallback={})
Definition Building.cpp:86
bool buildingHasTag(const std::string &buildingId, const std::string &tag)
Definition Building.cpp:81
float getPlaneSurfaceHeight()
Definition Building.cpp:136
int getChangeEventCellY(int index) const
Definition Building.cpp:172
int getBuildingCost(const std::string &buildingId, const std::string &resource)
Definition Building.cpp:92
std::string getBuildingCategory(const std::string &buildingId)
Definition Building.cpp:29
std::string getBuildingChannel(const std::string &buildingId)
Definition Building.cpp:59
std::string getChangeEventAction(int index) const
Definition Building.cpp:142
int getChangeEventCellX(int index) const
Definition Building.cpp:166
std::string getChangeEventWorldId(int index) const
Definition Building.cpp:148
int getBuildingFootprintH(const std::string &buildingId)
Definition Building.cpp:39
std::string getBuildingVisual2d(const std::string &buildingId, const std::string &key, const std::string &fallback={})
Definition Building.cpp:69
std::string getBuildingRenderMode(const std::string &buildingId)
Definition Building.cpp:64
int getChangeEventOtherCellY(int index) const
Definition Building.cpp:184
std::string getSurfaceName(int index)
Definition Building.cpp:128
int getChangeEventCount() const
Definition Building.cpp:140
bool hasSurface(const std::string &name)
Definition Building.cpp:120
std::string getBuildingValidateRule(const std::string &buildingId)
Definition Building.cpp:54
bool hasBuildingDefinition(const std::string &buildingId)
建筑模板查询(显示名/类别/占地/规则/标签/额外属性/成本)。
Definition Building.cpp:20
int getChangeEventOtherCellX(int index) const
Definition Building.cpp:178
PlacementWorld * newWorld(int width, int height, float cellSize=32.f)
工厂:创建放置世界 / 鬼影。
Definition Building.cpp:97
Definition Ghost.h:13
void setFromWorld(PlacementWorld *world, float worldX, float worldY)
按世界吸附模式,从世界坐标刷新格子与世界位姿。
Definition Ghost.cpp:45
void setFromWorld3D(PlacementWorld *world, float worldX, float worldY, float worldZ)
Definition Ghost.cpp:57
void setFromSurface(PlacementWorld *world, const std::string &surface, float x, float y)
Definition Ghost.cpp:69
float getRotationDeg() const
Definition PlacementSession.cpp:49
void stopPlacement()
Definition PlacementSession.cpp:24
void setRotationDeg(float deg)
Definition PlacementSession.cpp:41
void setMode(const std::string &mode)
Definition PlacementSession.cpp:33
bool startPlacement(PlacementWorld *world, const std::string &buildingId)
Definition PlacementSession.cpp:15
std::string getReason() const
Definition PlacementSession.cpp:84
bool updateFromWorld3D(PlacementWorld *world, float worldX, float worldY, float worldZ)
Definition PlacementSession.cpp:62
std::string getBuildingId() const
Definition PlacementSession.cpp:29
bool updateFromWorld(PlacementWorld *world, float worldX, float worldY)
Definition PlacementSession.cpp:53
void rotateBy(float deltaDeg)
Definition PlacementSession.cpp:45
bool updateFromSurface(PlacementWorld *world, const std::string &surface, float x, float y)
Definition PlacementSession.cpp:72
static std::vector< std::string > surfaceNames()
Definition PlacementSystem.cpp:120
static const std::vector< BuildingChangeEvent > & events()
Definition PlacementSystem.cpp:235
static float getPlaneSurfaceHeight()
Definition PlacementSystem.cpp:130
static void setPlaneSurfaceHeight(float h)
Definition PlacementSystem.cpp:128
static bool hasSurface(const std::string &name)
Definition PlacementSystem.cpp:106
static bool hasSnapRule(const std::string &name)
Definition PlacementSystem.cpp:83
static void clearEvents()
Definition PlacementSystem.cpp:233
static bool hasValidateRule(const std::string &name)
Definition PlacementSystem.cpp:71
std::string canPlaceReason(const std::string &buildingId, int cellX, int cellY, float rotationDeg=0.f)
Definition PlacementWorld.cpp:395
bool inBounds(int cellX, int cellY) const
Definition PlacementWorld.cpp:222
int getTerrain(int cellX, int cellY) const
Definition PlacementWorld.cpp:207
std::string getBuildingProp(int instanceId, const std::string &key, const std::string &fallback={}) const
Definition PlacementWorld.cpp:365
float getBuildingWorldY(int instanceId) const
Definition PlacementWorld.cpp:335
int getBuildingCellY(int instanceId) const
Definition PlacementWorld.cpp:325
void setGridFromLayer(map::TileLayer *layer)
Definition PlacementWorld.cpp:83
void setHexSideLength(float s)
Definition PlacementWorld.cpp:74
float getBuildingWorldX(int instanceId) const
Definition PlacementWorld.cpp:330
bool moveBuilding(int instanceId, int cellX, int cellY, float rotationDeg=-1.f)
Definition PlacementWorld.cpp:425
void setValidateRule(const std::string &rule)
Definition PlacementWorld.h:55
std::string getGridLayoutName() const
Definition PlacementWorld.cpp:57
float getBuildingElevation(int instanceId) const
Definition PlacementWorld.cpp:350
bool isCellEmptyInChannel(const std::string &channel, int cellX, int cellY) const
已放置建筑实例查询。
Definition PlacementWorld.cpp:305
bool hasBuilding(int instanceId) const
Definition PlacementWorld.cpp:311
void setOrigin(float x, float y)
Definition PlacementWorld.cpp:37
int getBuildingCellX(int instanceId) const
Definition PlacementWorld.cpp:320
float cellToWorld3DX(int cellX, int cellY, float elevation) const
Definition PlacementWorld.cpp:156
bool buildingHasTag(int instanceId, const std::string &tag) const
Definition PlacementWorld.cpp:378
int placeAt(const std::string &buildingId, int cellX, int cellY, float rotationDeg=0.f)
Definition PlacementWorld.cpp:402
void setGridLayout(const std::string &layout)
Definition PlacementWorld.cpp:53
std::string getValidateRule() const
Definition PlacementWorld.h:54
void setExtra(const std::string &key, const std::string &value)
世界级额外属性(键值)。
Definition PlacementWorld.cpp:42
bool hasGridFromLayer() const
Definition PlacementWorld.h:73
void setCellGap(float gapX, float gapY)
Definition PlacementWorld.cpp:69
int getBuildingCount() const
Definition PlacementWorld.cpp:309
bool isCellEmpty(int cellX, int cellY) const
Definition PlacementWorld.cpp:301
map::TileLayer * getTileLayer() const
Definition PlacementWorld.h:105
void setTerrain(int cellX, int cellY, int semantic)
Definition PlacementWorld.cpp:200
void setTerrainGid(int gid, int semantic)
Definition PlacementWorld.cpp:263
bool removeBuilding(int instanceId)
Definition PlacementWorld.cpp:421
float getBuildingRotation(int instanceId) const
Definition PlacementWorld.cpp:360
int worldToCell3DX(float worldX, float worldY, float worldZ) const
Definition PlacementWorld.cpp:181
float cellToWorldX(int cellX) const
Definition PlacementWorld.cpp:125
int placeAtWorld3D(const std::string &buildingId, float worldX, float worldY, float worldZ, float rotationDeg=0.f)
Definition PlacementWorld.cpp:412
std::string getGridPlaneName() const
Definition PlacementWorld.cpp:65
bool canPlace(const std::string &buildingId, int cellX, int cellY, float rotationDeg=0.f)
便捷操作(转发 PlacementSystem):放置 / 移除 / 移动。
Definition PlacementWorld.cpp:390
float cellToWorldY(int cellY) const
Definition PlacementWorld.cpp:131
int placeGhost(Ghost *ghost)
Definition PlacementWorld.cpp:417
int worldToCellY(float worldY) const
Definition PlacementWorld.cpp:119
void setBuildingProp(int instanceId, const std::string &key, const std::string &value)
Definition PlacementWorld.cpp:371
std::string getBuildingId(int instanceId) const
Definition PlacementWorld.cpp:315
void setGridPlane(const std::string &plane)
Definition PlacementWorld.cpp:61
void setSnapMode(const std::string &mode)
Definition PlacementWorld.h:53
void bindTileLayer(map::TileLayer *layer)
Definition PlacementWorld.cpp:228
std::string getExtra(const std::string &key, const std::string &fallback={}) const
Definition PlacementWorld.cpp:46
int worldToCell3DY(float worldX, float worldY, float worldZ) const
Definition PlacementWorld.cpp:187
void setStagger(const std::string &axis, const std::string &index)
Definition PlacementWorld.cpp:76
int placeAtWorld(const std::string &buildingId, float worldX, float worldY, float rotationDeg=0.f)
Definition PlacementWorld.cpp:407
int getAnyOccupant(int cellX, int cellY) const
Definition PlacementWorld.cpp:291
float cellToWorld3DY(int cellX, int cellY, float elevation) const
Definition PlacementWorld.cpp:162
std::string getBuildingChannel(int instanceId) const
Definition PlacementWorld.cpp:355
void setTerrainGidMapJson(const std::string &json)
Definition PlacementWorld.cpp:244
float getBuildingWorldZ(int instanceId) const
Definition PlacementWorld.cpp:343
int getOccupantInChannel(const std::string &channel, int cellX, int cellY) const
Definition PlacementWorld.cpp:282
float cellToWorld3DZ(int cellX, int cellY, float elevation) const
Definition PlacementWorld.cpp:168
void clearTerrainGidMap()
Definition PlacementWorld.cpp:267
建筑放置模块入口:定义 / 放置世界 / 鬼影 / 变更事件的脚本绑定点。 设计文档:docs/dev/建筑放置系统设计.md
Definition Building.cpp:7