载入中...
搜索中...
未找到
Building.h
浏览该文件的文档.
1#pragma once
2
8#include "common/Module.h"
9#include "building/Ghost.h"
12
13#include <string>
14
15namespace eve::building {
16
18class Building : public Module {
19public:
21 Building() = default;
22 ~Building() override = default;
23
25 int registerBuildingsFromJson(const std::string &json);
31 bool hasBuildingDefinition(const std::string &buildingId);
32 std::string getBuildingDisplayName(const std::string &buildingId);
33 std::string getBuildingCategory(const std::string &buildingId);
34 int getBuildingFootprintW(const std::string &buildingId);
35 int getBuildingFootprintH(const std::string &buildingId);
36 std::string getBuildingSnapMode(const std::string &buildingId);
37 std::string getBuildingRotationMode(const std::string &buildingId);
38 std::string getBuildingValidateRule(const std::string &buildingId);
39 std::string getBuildingChannel(const std::string &buildingId);
40 std::string getBuildingRenderMode(const std::string &buildingId);
41 std::string getBuildingVisual2d(const std::string &buildingId, const std::string &key,
42 const std::string &fallback = {});
43 std::string getBuildingVisual3d(const std::string &buildingId, const std::string &key,
44 const std::string &fallback = {});
45 bool buildingHasTag(const std::string &buildingId, const std::string &tag);
46 std::string getBuildingExtra(const std::string &buildingId, const std::string &key,
47 const std::string &fallback = {});
48 int getBuildingCost(const std::string &buildingId, const std::string &resource);
49
51 PlacementWorld *newWorld(int width, int height, float cellSize = 32.f);
52 Ghost *newGhost();
53 PlacementSession *newSession();
54
56 bool hasValidateRule(const std::string &name);
57 bool hasSnapRule(const std::string &name);
58 bool hasSurface(const std::string &name);
59 int getSurfaceCount();
60 std::string getSurfaceName(int index);
61 void setPlaneSurfaceHeight(float h);
63
65 void clearChangeEvents();
66 int getChangeEventCount() const;
67 std::string getChangeEventAction(int index) const;
68 std::string getChangeEventWorldId(int index) const;
69 std::string getChangeEventBuildingId(int index) const;
70 int getChangeEventInstanceId(int index) const;
71 int getChangeEventCellX(int index) const;
72 int getChangeEventCellY(int index) const;
73 int getChangeEventOtherCellX(int index) const;
74 int getChangeEventOtherCellY(int index) const;
75 float getChangeEventRotation(int index) const;
76};
77
78} // namespace eve::building
float height
Definition Grass.cpp:235
int h
int width
const char * name
Definition RockMesh.cpp:21
建筑放置模块(eve.Building)。
Definition Building.h:18
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
~Building() override=default
bool hasValidateRule(const std::string &name)
扩展规则是否存在(校验/吸附)。
Definition Building.cpp:112
float getChangeEventRotation(int index) const
Definition Building.cpp:190
int getBuildingFootprintW(const std::string &buildingId)
Definition Building.cpp:34
void clearBuildingDefinitions()
清空全部建筑模板。
Definition Building.cpp:16
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
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
PlacementSession * newSession()
Definition Building.cpp:107
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
void clearChangeEvents()
变更事件队列(放置/移除/移动)。
Definition Building.cpp:138
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 getBuildingDefinitionCount()
已注册建筑模板数量。
Definition Building.cpp:18
int getChangeEventOtherCellX(int index) const
Definition Building.cpp:178
PlacementWorld * newWorld(int width, int height, float cellSize=32.f)
工厂:创建放置世界 / 鬼影。
Definition Building.cpp:97
建筑放置模块入口:定义 / 放置世界 / 鬼影 / 变更事件的脚本绑定点。 设计文档:docs/dev/建筑放置系统设计.md
Definition Building.cpp:7