载入中...
搜索中...
未找到

经济模块(eve.Economy):资源类型注册 + 玩家账本 + 事件 + 采集流水线。 更多...

#include <Economy.h>

类 eve::economy::Economy 继承关系图:
eve::Module eve::economy::IEconomy

Public 成员函数

 Module_REG (Economy)
 
 Economy ()
 Economy.
 
 ~Economy () override
 Economy.
 
int credit (int player, const std::string &type, int amount) override
 Credit.
 
bool debit (int player, const std::string &type, int amount) override
 Debit.
 
int get (int player, const std::string &type) const override
 Get.
 
int getCap (int player, const std::string &type) const override
 Get cap.
 
int getWasted (int player, const std::string &type) const override
 Get wasted.
 
int getIncome (int player, const std::string &type) const override
 Get income.
 
int getExpense (int player, const std::string &type) const override
 Get expense.
 
std::string getTypeId (int index)
 按 id 字典序返回第 index 个资源类型 id;越界返回空串。
 
eve::Result< void > publishGameplay (const std::string &instanceId, const std::string &ownerId, int player)
 把一个玩家账本发布到共享玩法协议(eve_gameplay / MCP)。
 
eve::Result< void > unpublishGameplay (const std::string &instanceId)
 取消发布一个实例;该实例未发布(或 id 非法)时返回诊断。
 
void clearGameplayControls ()
 取消发布本模块持有的全部玩法实例。
 
int gameplayControlCount () const
 已发布的玩法实例数量。
 
std::vector< std::string > gameplayInstances () const
 已发布的玩法实例标识(发布顺序)。
 
- Public 成员函数 继承自 eve::Module
virtual ~Module ()
 Module.
 
virtual std::string getName () const =0
 Returns the name.
 
- Public 成员函数 继承自 eve::economy::IEconomy
virtual ~IEconomy ()=default
 Releases IEconomy resources.
 

静态 Public 成员函数

static bool registerResourceType (const std::string &id, const std::string &category, int stockMax, const std::string &depletion)
 注册资源类型;depletion 取值 finite/renewable/infinite/growing。
 
static void clearTypes ()
 清空资源类型(测试用)。
 
static int typeCount ()
 已注册类型数量。
 
static bool hasType (const std::string &id)
 类型是否已注册。
 
static int getStockMax (const std::string &id)
 类型持有上限(未注册返回 0)。
 
static void clearEvents ()
 清空事件队列。
 
static int eventCount ()
 事件队列长度。
 
static std::string eventAction (int index)
 第 index 个事件的动作(credit/debit/waste;越界返回空串)。
 
static int eventPlayer (int index)
 第 index 个事件的玩家(越界返回 0)。
 
static std::string eventType (int index)
 第 index 个事件的资源类型(越界返回空串)。
 
static int eventAmount (int index)
 第 index 个事件的数值(越界返回 0)。
 

额外继承的成员函数

- 静态 Public 属性 继承自 eve::economy::IEconomy
static constexpr const char * capabilityName = "IEconomy"
 

详细描述

经济模块(eve.Economy):资源类型注册 + 玩家账本 + 事件 + 采集流水线。

在文件 Economy.h 第 20 行定义.

构造及析构函数说明

◆ Economy()

eve::economy::Economy::Economy ( )

Economy.

在文件 Economy.cpp 第 17 行定义.

◆ ~Economy()

eve::economy::Economy::~Economy ( )
override

Economy.

在文件 Economy.cpp 第 19 行定义.

引用了 clearGameplayControls().

成员函数说明

◆ clearEvents()

void eve::economy::Economy::clearEvents ( )
static

清空事件队列。

在文件 Economy.cpp 第 81 行定义.

引用了 eve::economy::EconomySystem::clearEvents().

◆ clearGameplayControls()

void eve::economy::Economy::clearGameplayControls ( )

取消发布本模块持有的全部玩法实例。

在文件 Economy.cpp 第 224 行定义.

被这些函数引用 ~Economy().

◆ clearTypes()

void eve::economy::Economy::clearTypes ( )
static

清空资源类型(测试用)。

在文件 Economy.cpp 第 65 行定义.

引用了 eve::economy::ResourceTypeRegistry::clear().

◆ credit()

int eve::economy::Economy::credit ( int  player,
const std::string &  type,
int  amount 
)
overridevirtual

Credit.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 21 行定义.

引用了 eve::economy::EconomySystem::credit() , 以及 type.

◆ debit()

bool eve::economy::Economy::debit ( int  player,
const std::string &  type,
int  amount 
)
overridevirtual

Debit.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 25 行定义.

引用了 eve::economy::EconomySystem::debit() , 以及 type.

◆ eventAction()

std::string eve::economy::Economy::eventAction ( int  index)
static

第 index 个事件的动作(credit/debit/waste;越界返回空串)。

在文件 Economy.cpp 第 85 行定义.

引用了 eve::economy::EconomyEvent::action, eve::economy::EconomySystem::eventAt(), eve::economy::EconomySystem::eventCount() , 以及 index.

◆ eventAmount()

int eve::economy::Economy::eventAmount ( int  index)
static

第 index 个事件的数值(越界返回 0)。

在文件 Economy.cpp 第 100 行定义.

引用了 eve::economy::EconomyEvent::amount, eve::economy::EconomySystem::eventAt(), eve::economy::EconomySystem::eventCount() , 以及 index.

◆ eventCount()

int eve::economy::Economy::eventCount ( )
static

事件队列长度。

在文件 Economy.cpp 第 83 行定义.

引用了 eve::economy::EconomySystem::eventCount().

◆ eventPlayer()

int eve::economy::Economy::eventPlayer ( int  index)
static

第 index 个事件的玩家(越界返回 0)。

在文件 Economy.cpp 第 90 行定义.

引用了 eve::economy::EconomySystem::eventAt(), eve::economy::EconomySystem::eventCount(), index , 以及 eve::economy::EconomyEvent::player.

◆ eventType()

std::string eve::economy::Economy::eventType ( int  index)
static

第 index 个事件的资源类型(越界返回空串)。

在文件 Economy.cpp 第 95 行定义.

引用了 eve::economy::EconomySystem::eventAt(), eve::economy::EconomySystem::eventCount(), index , 以及 eve::economy::EconomyEvent::type.

◆ gameplayControlCount()

int eve::economy::Economy::gameplayControlCount ( ) const

已发布的玩法实例数量。

在文件 Economy.cpp 第 228 行定义.

◆ gameplayInstances()

std::vector< std::string > eve::economy::Economy::gameplayInstances ( ) const

已发布的玩法实例标识(发布顺序)。

在文件 Economy.cpp 第 230 行定义.

◆ get()

int eve::economy::Economy::get ( int  player,
const std::string &  type 
) const
overridevirtual

Get.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 29 行定义.

引用了 eve::economy::EconomySystem::get() , 以及 type.

◆ getCap()

int eve::economy::Economy::getCap ( int  player,
const std::string &  type 
) const
overridevirtual

Get cap.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 31 行定义.

引用了 eve::economy::EconomySystem::getCap() , 以及 type.

◆ getExpense()

int eve::economy::Economy::getExpense ( int  player,
const std::string &  type 
) const
overridevirtual

Get expense.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 43 行定义.

引用了 eve::economy::EconomySystem::getExpense() , 以及 type.

◆ getIncome()

int eve::economy::Economy::getIncome ( int  player,
const std::string &  type 
) const
overridevirtual

Get income.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 39 行定义.

引用了 eve::economy::EconomySystem::getIncome() , 以及 type.

◆ getStockMax()

int eve::economy::Economy::getStockMax ( const std::string &  id)
static

类型持有上限(未注册返回 0)。

在文件 Economy.cpp 第 71 行定义.

引用了 eve::economy::ResourceTypeRegistry::find().

◆ getTypeId()

std::string eve::economy::Economy::getTypeId ( int  index)

按 id 字典序返回第 index 个资源类型 id;越界返回空串。

在文件 Economy.cpp 第 76 行定义.

引用了 index , 以及 eve::economy::ResourceTypeRegistry::typeAt().

◆ getWasted()

int eve::economy::Economy::getWasted ( int  player,
const std::string &  type 
) const
overridevirtual

Get wasted.

实现了 eve::economy::IEconomy.

在文件 Economy.cpp 第 35 行定义.

引用了 eve::economy::EconomySystem::getWasted() , 以及 type.

◆ hasType()

bool eve::economy::Economy::hasType ( const std::string &  id)
static

类型是否已注册。

在文件 Economy.cpp 第 69 行定义.

引用了 eve::economy::ResourceTypeRegistry::find().

◆ Module_REG()

eve::economy::Economy::Module_REG ( Economy  )

◆ publishGameplay()

eve::Result< void > eve::economy::Economy::publishGameplay ( const std::string &  instanceId,
const std::string &  ownerId,
int  player 
)

把一个玩家账本发布到共享玩法协议(eve_gameplay / MCP)。

领域动作词表就是本模块自己的操作:economy:debit 是普通消费(玩家档位 可用,余额不足即拒绝),economy:credit 是发放(仅 test-driver / developer-cheat,且超上限部分以 waste 事件披露)。采集仍由 GatherNode/Collector 按 tick 驱动,不在此另开捷径。

参数
instanceId实例稳定标识,必须是规范持久 id(UUID 文本)。
ownerId控制该实例的玩家/角色稳定标识,同为规范持久 id。
player模块级玩家 id(EconomySystem 的账本键)。
返回
成功返回空结果;id 非法或实例重复返回诊断。 @ownership 适配器由本模块持有并随模块销毁;账本所有权不变。 @thread 所有者模拟线程。

在文件 Economy.cpp 第 197 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::SubjectRef::fromPersistentId(), eve::InvalidArgument , 以及 eve::detail::Id128< Tag >::parse().

◆ registerResourceType()

bool eve::economy::Economy::registerResourceType ( const std::string &  id,
const std::string &  category,
int  stockMax,
const std::string &  depletion 
)
static

◆ typeCount()

int eve::economy::Economy::typeCount ( )
static

已注册类型数量。

在文件 Economy.cpp 第 67 行定义.

引用了 eve::economy::ResourceTypeRegistry::count().

◆ unpublishGameplay()

eve::Result< void > eve::economy::Economy::unpublishGameplay ( const std::string &  instanceId)

取消发布一个实例;该实例未发布(或 id 非法)时返回诊断。

在文件 Economy.cpp 第 213 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::SubjectRef::fromPersistentId(), eve::InvalidArgument, eve::NotFound , 以及 eve::detail::Id128< Tag >::parse().


该类的文档由以下文件生成: