载入中...
搜索中...
未找到
eve::rpg::QuestRegistry类 参考

进程级任务定义注册表。 更多...

#include <Quest.h>

静态 Public 成员函数

static void registerQuest (const QuestDefinition &def)
 Registers quest.
 
static const QuestDefinition * find (const std::string &id)
 Find a registered quest definition by id.
 
static bool remove (const std::string &id)
 Remove a quest by id (compatibility facade returning whether it was present).
 
static void clear ()
 Clears .
 
static int count ()
 Returns the number of .
 
static std::vector< std::string > ids ()
 Ids.
 
static bool contains (const std::string &id)
 Return whether one exact stable quest id is registered.
 
static int loadFromJson (const std::string &json, std::string *error=nullptr)
 从 JSON 数组/对象批量注册;缺 id、重复 objective id、环形 requires 的定义被拒绝。
 
static eve::Result< int > replaceFromJsonStrict (const std::string &json)
 Strictly validate and atomically replace every registered quest definition.
 

详细描述

进程级任务定义注册表。

在文件 Quest.h 第 44 行定义.

成员函数说明

◆ clear()

void eve::rpg::QuestRegistry::clear ( )
static

Clears .

在文件 Quest.cpp 第 168 行定义.

引用了 eve::rpg::questTable().

被这些函数引用 eve::rpg::RPG::clearQuestDefinitions().

◆ contains()

bool eve::rpg::QuestRegistry::contains ( const std::string &  id)
static

Return whether one exact stable quest id is registered.

在文件 Quest.cpp 第 181 行定义.

引用了 eve::rpg::questTable().

被这些函数引用 eve::rpg::RPG::hasQuestDefinition().

◆ count()

int eve::rpg::QuestRegistry::count ( )
static

Returns the number of .

在文件 Quest.cpp 第 170 行定义.

引用了 eve::rpg::questTable() , 以及 size.

被这些函数引用 eve::rpg::RPG::getQuestDefinitionCount() , 以及 replaceFromJsonStrict().

◆ find()

const QuestDefinition * eve::rpg::QuestRegistry::find ( const std::string &  id)
static

Find a registered quest definition by id.

返回
Borrowed nullable definition owned by the process-local registry. @ownership QuestRegistry owns the definition; callers must not delete or mutate it. @lifetime Valid until remove(), clear(), or replacement of the same id; copy data before registry mutation.

在文件 Quest.cpp 第 160 行定义.

引用了 eve::rpg::questTable() , 以及 t.

被这些函数引用 eve::rpg::RPGSaveSession::addQuestAdditionMigration(), eve::rpg::QuestSystem::canActivateReason(), eve::rpg::QuestReward::claim(), eve::rpg::Tracker::getExtra(), eve::rpg::Tracker::getRewardAmount(), eve::rpg::Tracker::getRewardCount(), eve::rpg::Tracker::getRewardId(), eve::rpg::Tracker::getRewardType(), eve::rpg::Tracker::hasTag(), eve::rpg::QuestSystem::notify(), eve::rpg::EncounterCatalogue::replaceFromJsonStrict(), eve::rpg::QuestSystem::reset() , 以及 eve::rpg::QuestSystem::syncAuto().

◆ ids()

std::vector< std::string > eve::rpg::QuestRegistry::ids ( )
static

Ids.

在文件 Quest.cpp 第 172 行定义.

引用了 eve::rpg::questTable().

被这些函数引用 eve::rpg::QuestSystem::syncAuto().

◆ loadFromJson()

int eve::rpg::QuestRegistry::loadFromJson ( const std::string &  json,
std::string *  error = nullptr 
)
static

从 JSON 数组/对象批量注册;缺 id、重复 objective id、环形 requires 的定义被拒绝。

在文件 Quest.cpp 第 183 行定义.

引用了 error, eve::rpg::QuestDefinition::id, n, eve::json::Document::parse(), eve::rpg::questTable(), eve::json::Document::root(), root, t , 以及 eve::json::Document::valid().

被这些函数引用 eve::rpg::RPG::registerQuestsFromJson().

◆ registerQuest()

void eve::rpg::QuestRegistry::registerQuest ( const QuestDefinition &  def)
static

◆ remove()

bool eve::rpg::QuestRegistry::remove ( const std::string &  id)
static

Remove a quest by id (compatibility facade returning whether it was present).

在文件 Quest.cpp 第 166 行定义.

引用了 eve::rpg::questTable().

◆ replaceFromJsonStrict()

eve::Result< int > eve::rpg::QuestRegistry::replaceFromJsonStrict ( const std::string &  json)
static

Strictly validate and atomically replace every registered quest definition.

参数
jsonOne quest object or an array containing the complete replacement catalogue.
返回
Number of committed definitions, or a structured diagnostic without registry mutation. @ownership The registry copies all parsed data and retains no view into json. @lifetime Committed definitions remain valid until the next registry mutation. @thread Call on the owning simulation/content thread; the process-local registry is not synchronized. @reentrancy Does not invoke callbacks. Existing Tracker instances must be rebuilt or explicitly synchronized after a successful replacement.
备注
Unlike loadFromJson(), this canonical authoring API rejects unknown policies, malformed fields, duplicate ids, missing prerequisites, and cyclic dependencies as one transaction.

在文件 Quest.cpp 第 226 行定义.

引用了 eve::json::Value::asDouble(), eve::json::Value::asString(), eve::json::Value::at(), count(), eve::json::Value::get(), eve::json::Value::isArray(), eve::json::Value::isNumber(), eve::json::Value::isObject(), eve::json::Value::isString(), key, eve::json::Value::keys(), objectives, eve::json::Document::parse(), path, eve::rpg::questTable(), required, eve::json::Document::root(), root, eve::json::Value::size(), size, eve::Result< T >::success(), target, eve::json::Value::toStringArray(), type , 以及 eve::json::Document::valid().

被这些函数引用 eve::rpg::RPG::replaceQuestsFromJson().


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