载入中...
搜索中...
未找到
PlacementWorld.h
浏览该文件的文档.
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
PlacementWorld(const PlacementWorld &)=delete
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
const std::unordered_map< int, PlacedBuilding > & buildings() const
Definition PlacementWorld.h:166
const grid::GridConfig & getGrid() const
Definition PlacementWorld.h:62
int getBuildingCellX(int instanceId) const
Definition PlacementWorld.cpp:320
float cellToWorld3DX(int cellX, int cellY, float elevation) const
Definition PlacementWorld.cpp:156
const std::vector< int > & terrain() const
Definition PlacementWorld.h:158
bool buildingHasTag(int instanceId, const std::string &tag) const
Definition PlacementWorld.cpp:378
const std::vector< int > & occupancy() const
Definition PlacementWorld.h:156
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
~PlacementWorld()=default
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
std::unordered_map< int, PlacedBuilding > & buildings()
Definition PlacementWorld.h:167
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
std::vector< int > & occupancy()
Definition PlacementWorld.h:157
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
const std::unordered_map< std::string, std::vector< int > > & allChannels() const
Definition PlacementWorld.h:160
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::unordered_map< std::string, std::vector< int > > & allChannels()
Definition PlacementWorld.h:163
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
PlacementWorld & operator=(const PlacementWorld &)=delete
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
放置世界:格子占用(多通道)+ 地形语义 + 已放置建筑实例。 行为由 PlacementSystem 提供;本类暴露便于脚本绑定的薄封装方法。 坐标换算统一走 eve::grid(支持 rectang...
Definition PlacementWorld.h:16
Definition GridConfig.h:23