载入中...
搜索中...
未找到
Economy.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/IEconomy.h"
6#include "common/Module.h"
7#include "common/Result.h"
8
9#include <memory>
10#include <string>
11#include <vector>
12
13namespace eve::economy {
14
15class EconomyControl;
16
21public:
24 Economy();
26 ~Economy() override;
27
28 // ---- IEconomy ----
30 int credit(int player, const std::string& type, int amount) override;
32 bool debit(int player, const std::string& type, int amount) override;
34 int get(int player, const std::string& type) const override;
36 int getCap(int player, const std::string& type) const override;
38 int getWasted(int player, const std::string& type) const override;
40 int getIncome(int player, const std::string& type) const override;
42 int getExpense(int player, const std::string& type) const override;
43
44 // ---- 注册表门面 ----
46 static bool registerResourceType(const std::string& id, const std::string& category,
47 int stockMax, const std::string& depletion);
49 static void clearTypes();
51 static int typeCount();
53 static bool hasType(const std::string& id);
55 static int getStockMax(const std::string& id);
57 std::string getTypeId(int index);
58
59 // ---- 事件 ----
61 static void clearEvents();
63 static int eventCount();
65 static std::string eventAction(int index);
67 static int eventPlayer(int index);
69 static std::string eventType(int index);
71 static int eventAmount(int index);
72
87 [[nodiscard]] eve::Result<void> publishGameplay(const std::string& instanceId, const std::string& ownerId,
88 int player);
90 [[nodiscard]] eve::Result<void> unpublishGameplay(const std::string& instanceId);
92 void clearGameplayControls();
94 [[nodiscard]] int gameplayControlCount() const;
96 [[nodiscard]] std::vector<std::string> gameplayInstances() const;
97
98private:
100 std::unique_ptr<EconomyControl> gameplay_;
101};
102
103} // namespace eve::economy
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
Move-only, checked operation results for the common layer.
const char * category
uint32_t index
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
Move-only operation result carrying either a value or Status.
Definition Result.h:155
经济模块(eve.Economy):资源类型注册 + 玩家账本 + 事件 + 采集流水线。
Definition Economy.h:20
经济账本的跨模块查询/操作接口(提供方:economy 模块)。
Definition IEconomy.h:13