进程级任务定义注册表。 更多...
#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. | |
详细描述
成员函数说明
◆ clear()
|
static |
Clears .
◆ contains()
|
static |
Return whether one exact stable quest id is registered.
被这些函数引用 eve::rpg::RPG::hasQuestDefinition().
◆ count()
|
static |
Returns the number of .
引用了 eve::rpg::questTable() , 以及 size.
被这些函数引用 eve::rpg::RPG::getQuestDefinitionCount() , 以及 replaceFromJsonStrict().
◆ find()
|
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.
引用了 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()
|
static |
Ids.
被这些函数引用 eve::rpg::QuestSystem::syncAuto().
◆ loadFromJson()
|
static |
从 JSON 数组/对象批量注册;缺 id、重复 objective id、环形 requires 的定义被拒绝。
引用了 error, eve::rpg::QuestDefinition::id, n, eve::json::Document::parse(), eve::rpg::questTable(), eve::json::Document::root(), root, t , 以及 eve::json::Document::valid().
◆ registerQuest()
|
static |
Registers quest.
引用了 eve::rpg::QuestDefinition::completePolicy, eve::rpg::QuestDefinition::id, eve::rpg::questTable(), eve::rpg::QuestDefinition::startPolicy , 以及 t.
◆ remove()
|
static |
Remove a quest by id (compatibility facade returning whether it was present).
◆ replaceFromJsonStrict()
|
static |
Strictly validate and atomically replace every registered quest definition.
- 参数
-
json One 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.
引用了 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().
该类的文档由以下文件生成: