载入中...
搜索中...
未找到
PlacementWorld.cpp
浏览该文件的文档.
282int PlacementWorld::getOccupantInChannel(const std::string &channel, int cellX, int cellY) const {
305bool PlacementWorld::isCellEmptyInChannel(const std::string &channel, int cellX, int cellY) const {
Definition Ghost.h:13
static int placeAt(PlacementWorld *world, const std::string &buildingId, int cellX, int cellY, float rotationDeg=0.f)
成功返回 instanceId;失败返回 0。
Definition PlacementSystem.cpp:520
static int placeAtWorld3D(PlacementWorld *world, const std::string &buildingId, float worldX, float worldY, float worldZ, float rotationDeg=0.f)
Definition PlacementSystem.cpp:576
static void clearBuildings(PlacementWorld *world)
Definition PlacementSystem.cpp:676
static bool removeBuilding(PlacementWorld *world, int instanceId)
Definition PlacementSystem.cpp:609
static bool moveBuilding(PlacementWorld *world, int instanceId, int cellX, int cellY, float rotationDeg=-1.f)
Definition PlacementSystem.cpp:635
static int placeAtWorld(PlacementWorld *world, const std::string &buildingId, float worldX, float worldY, float rotationDeg=0.f)
先吸附再放置;free/自定义 snap 会保留吸附后的世界坐标。
Definition PlacementSystem.cpp:560
static int placeGhost(PlacementWorld *world, Ghost *ghost)
Definition PlacementSystem.cpp:593
static bool canPlace(PlacementWorld *world, const std::string &buildingId, int cellX, int cellY, float rotationDeg=0.f, int excludeInstanceId=0, std::string *reason=nullptr)
Definition PlacementSystem.cpp:487
std::string canPlaceReason(const std::string &buildingId, int cellX, int cellY, float rotationDeg=0.f)
Definition PlacementWorld.cpp:395
PlacementWorld(int width, int height, float cellSize=32.f)
创建 width×height 的格子世界,cellSize 为像素/格。
Definition PlacementWorld.cpp:17
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
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
void setExtra(const std::string &key, const std::string &value)
世界级额外属性(键值)。
Definition PlacementWorld.cpp:42
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
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 cellToWorldPlane(int cellX, int cellY, float &px, float &py) const
Definition PlacementWorld.cpp:137
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 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
void worldToCell3D(float worldX, float worldY, float worldZ, int &cellX, int &cellY) const
Definition PlacementWorld.cpp:174
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
std::vector< int > & channelOccupancy(const std::string &channel)
Definition PlacementWorld.cpp:271
void clearTerrainGidMap()
Definition PlacementWorld.cpp:267
void cellToWorld3D(int cellX, int cellY, float elevation, float &worldX, float &worldY, float &worldZ) const
Definition PlacementWorld.cpp:141
ECS tile layer entity. Script mutates tile GIDs / tileset / draw; TileRenderSystem batch-draws atlas ...
Definition TileLayer.h:30
建筑放置模块入口:定义 / 放置世界 / 鬼影 / 变更事件的脚本绑定点。 设计文档:docs/dev/建筑放置系统设计.md
Definition Building.cpp:7
void cellToWorld(const GridConfig &cfg, int cx, int cy, float &px, float &py)
Definition GridProjection.cpp:30
void worldToCell(const GridConfig &cfg, float px, float py, int &cx, int &cy, int mapW, int mapH)
Definition GridProjection.cpp:69
@ Hexagon
@ Isometric
@ Rectangle
@ Staggered
@ Hexagonal
@ Orthogonal
@ Isometric
@ Staggered
static const char * layoutName(GridLayout l)
Definition GridConfig.cpp:5
static const char * planeName(GridPlane p)
Definition GridConfig.cpp:29
static GridPlane planeFromName(const std::string &name)
Definition GridConfig.cpp:33
static GridLayout layoutFromName(const std::string &name)
Definition GridConfig.cpp:21