载入中...
搜索中...
未找到
Building.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
10#include "common/Module.h"
11#include "building/Ghost.h"
14
15#include <string>
16
17namespace eve::building {
18
21public:
24 Building() = default;
26 ~Building() override = default;
27
29 int registerBuildingsFromJson(const std::string &json);
31 void clearBuildingDefinitions();
33 int getBuildingDefinitionCount();
35 bool hasBuildingDefinition(const std::string &buildingId);
37 std::string getBuildingDisplayName(const std::string &buildingId);
39 std::string getBuildingCategory(const std::string &buildingId);
41 int getBuildingFootprintW(const std::string &buildingId);
43 int getBuildingFootprintH(const std::string &buildingId);
45 std::string getBuildingSnapMode(const std::string &buildingId);
47 std::string getBuildingRotationMode(const std::string &buildingId);
49 std::string getBuildingValidateRule(const std::string &buildingId);
51 std::string getBuildingChannel(const std::string &buildingId);
53 std::string getBuildingRenderMode(const std::string &buildingId);
55 std::string getBuildingPlacementKind(const std::string &buildingId);
57 std::string getBuildingConnectionGroup(const std::string &buildingId);
59 std::string getBuildingVisual2d(const std::string &buildingId, const std::string &key,
60 const std::string &fallback = {});
62 std::string getBuildingVisual3d(const std::string &buildingId, const std::string &key,
63 const std::string &fallback = {});
65 bool buildingHasTag(const std::string &buildingId, const std::string &tag);
67 std::string getBuildingExtra(const std::string &buildingId, const std::string &key,
68 const std::string &fallback = {});
70 int getBuildingCost(const std::string &buildingId, const std::string &resource);
71
73 PlacementWorld *newWorld(int width, int height, float cellSize = 32.f);
75 Ghost *newGhost();
77 PlacementSession *newSession();
78
80 bool hasValidateRule(const std::string &name);
82 bool hasSnapRule(const std::string &name);
84 bool hasSurface(const std::string &name);
86 int getSurfaceCount();
88 std::string getSurfaceName(int index);
90 void setPlaneSurfaceHeight(float h);
92 float getPlaneSurfaceHeight();
93
95 void clearChangeEvents();
97 int getChangeEventCount() const;
99 std::string getChangeEventAction(int index) const;
101 std::string getChangeEventWorldId(int index) const;
103 std::string getChangeEventBuildingId(int index) const;
105 int getChangeEventInstanceId(int index) const;
107 int getChangeEventCellX(int index) const;
109 int getChangeEventCellY(int index) const;
111 int getChangeEventOtherCellX(int index) const;
113 int getChangeEventOtherCellY(int index) const;
115 float getChangeEventRotation(int index) const;
116};
117
118} // namespace eve::building
#define EVENGINE_API_WORLD
Definition Export.h:109
std::uint32_t key
int h
std::uint32_t height
std::uint32_t width
std::string name
const std::string * tag
std::string resource
uint32_t index
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
建筑放置模块(eve.Building)。
Definition Building.h:20
~Building() override=default
Building.
Building()=default
Building.
建筑放置模块入口:定义 / 放置世界 / 鬼影 / 变更事件的脚本绑定点。 设计文档:docs/dev/建筑放置系统设计.md
Definition Building.cpp:7