载入中...
搜索中...
未找到
Inventory.cpp
浏览该文件的文档.
289 cls.addFunc("publishGameplay", [vm = cls.getHandle()](Inventory *self, const std::string &instanceId,
297 EquipmentSet *equipmentSet = equipment.isNull() ? nullptr : equipment.toPtrUnsafe<EquipmentSet *>();
300 result.set("message", published.ok() ? std::string("published") : published.status().describe());
303 cls.addFunc("unpublishGameplay", [vm = cls.getHandle()](Inventory *self, const std::string &instanceId) {
310 result.set("message", unpublished.ok() ? std::string("unpublished") : unpublished.status().describe());
317Inventory::~Inventory() { clearGameplayControls(); }
319eve::Result<void> Inventory::publishGameplay(const std::string &instanceId, const std::string &ownerId, Bag *bag,
332 return gameplay_->publish(eve::SubjectRef::fromPersistentId(*instance), eve::SubjectRef::fromPersistentId(*owner),
339 eve::Diagnostic::error(eve::DiagnosticCode::NotFound, "no inventory instance is published", "instanceId"));
343 eve::DiagnosticCode::InvalidArgument, "the instance id must be a canonical persistent id", "instanceId"));
Versioned atomic persistence boundary for one bag and equipment set.
Stable reference to a runtime gameplay subject.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static SubjectRef fromPersistentId(PersistentId id) noexcept
Wrap a persistent identity without changing its bytes.
Definition SubjectRef.h:32
static std::optional< Id128 > parse(std::string_view text) noexcept
Parses canonical UUID text.
Definition Identity.h:151
std::string canAddItemReason(const std::string &itemId, int quantity)
Can add item reason.
Definition Bag.cpp:61
bool canAddItem(const std::string &itemId, int quantity)
便捷操作(转发 InventorySystem):增删 / 移动 / 查询。
Definition Bag.cpp:57
std::string getSlotProp(int slot, const std::string &key, const std::string &fallback={}) const
Returns the slot prop.
Definition Bag.cpp:137
std::string getExtra(const std::string &key, const std::string &fallback={}) const
Returns the extra.
Definition Bag.cpp:52
void setSlotProp(int slot, const std::string &key, const std::string &value)
Sets the slot prop.
Definition Bag.cpp:142
void clearSlotAllowedTags(const std::string &slotName)
Clears slot allowed tags.
Definition Equipment.cpp:20
int getSlotInstanceId(const std::string &slotName) const
Returns the slot instance id.
Definition Equipment.cpp:62
void addSlotAllowedTag(const std::string &slotName, const std::string &tag)
Adds slot allowed tag.
Definition Equipment.cpp:26
bool equipFromBag(const std::string &equipSlot, Bag *bag, int bagSlot)
Equip from bag.
Definition Equipment.cpp:131
std::string getSlotItemId(const std::string &slotName) const
Returns the slot item id.
Definition Equipment.cpp:50
int getSlotQuantity(const std::string &slotName) const
Returns the slot quantity.
Definition Equipment.cpp:56
bool unequipToBag(const std::string &equipSlot, Bag *bag)
Unequip to bag.
Definition Equipment.cpp:135
static const std::vector< InventoryChangeEvent > & events()
Events.
Definition InventorySystem.cpp:294
static bool hasStackRule(const std::string &name)
True when stack rule.
Definition InventorySystem.cpp:126
static int transfer(Bag *from, Bag *to, const std::string &itemId, int quantity)
Transfer.
Definition InventorySystem.cpp:677
static bool hasAcceptRule(const std::string &name)
True when accept rule.
Definition InventorySystem.cpp:100
static bool hasCapacityPolicy(const std::string &name)
True when capacity policy.
Definition InventorySystem.cpp:114
static int transferSlot(Bag *from, int fromSlot, Bag *to, int quantity)
Transfer slot.
Definition InventorySystem.cpp:717
bool hasItemDefinition(const std::string &itemId)
物品定义查询(显示名/堆叠/重量/体积/类别/装备槽/标签/额外属性)。
Definition Inventory.cpp:26
std::string getItemExtra(const std::string &itemId, const std::string &key, const std::string &fallback={})
Returns the item extra.
Definition Inventory.cpp:65
int transferItem(Bag *from, Bag *to, const std::string &itemId, int quantity)
跨容器转移(按物品 id / 按槽位);返回实际转移数量。
Definition Inventory.cpp:81
std::string getChangeEventOtherBagId(int index) const
Returns the change event other bag id.
Definition Inventory.cpp:119
std::string getChangeEventItemId(int index) const
Returns the change event item id.
Definition Inventory.cpp:125
int getChangeEventOtherSlot(int index) const
Returns the change event other slot.
Definition Inventory.cpp:143
EquipmentSet * newEquipmentSet()
Creates a equipment set. @ownership Caller deletes unless documented otherwise.
Definition Inventory.cpp:76
std::string getChangeEventAction(int index) const
Returns the change event action.
Definition Inventory.cpp:107
std::string getItemCategory(const std::string &itemId)
Returns the item category.
Definition Inventory.cpp:50
int transferSlot(Bag *from, int fromSlot, Bag *to, int quantity)
Transfer slot.
Definition Inventory.cpp:85
int registerItemsFromJson(const std::string &json)
从 JSON 注册物品定义;返回成功注册数量。
Definition Inventory.cpp:17
std::string getChangeEventBagId(int index) const
Returns the change event bag id.
Definition Inventory.cpp:113
int getChangeEventQuantity(int index) const
Returns the change event quantity.
Definition Inventory.cpp:131
bool itemHasTag(const std::string &itemId, const std::string &tag)
Item has tag.
Definition Inventory.cpp:60
std::string getItemDisplayName(const std::string &itemId)
Returns the item display name.
Definition Inventory.cpp:30
int getItemMaxStack(const std::string &itemId)
Returns the item max stack.
Definition Inventory.cpp:35
std::string getItemEquipSlot(const std::string &itemId)
Returns the item equip slot.
Definition Inventory.cpp:55
bool hasCapacityPolicy(const std::string &name)
True when capacity policy.
Definition Inventory.cpp:93
std::string getChangeEventEquipSlot(int index) const
Returns the change event equip slot.
Definition Inventory.cpp:149
static int loadFromJson(const std::string &json, std::string *error=nullptr)
从 JSON 数组或单对象批量注册,返回成功数量。 元素形如: { "id": "potion.hp", "displayName": "治疗药水", "maxStack": 20,...
Definition Item.cpp:84
运行时容器:固定格数的背包 / 箱子 / 商店栏等。 行为由 InventorySystem 提供;本类暴露便于脚本绑定的薄封装方法。
Definition AvatarInstance.h:37
@ InvalidArgument
@ NotFound
@ Failed
Definition Container.h:602