9#include <unordered_map>
21 std::vector<std::string>
tags;
25 std::unordered_map<std::string, std::string>
extra;
28 bool hasTag(
const std::string &
tag)
const;
30 std::string getExtra(
const std::string &
key,
const std::string &fallback = {})
const;
38 float durability = -1.f;
39 std::unordered_map<std::string, std::string>
props;
40 std::vector<std::string>
tags;
43 bool empty()
const {
return itemId.empty() || quantity <= 0; }
47 bool hasTag(
const std::string &
tag)
const;
49 std::string getProp(
const std::string &
key,
const std::string &fallback = {})
const;
51 void setProp(
const std::string &
key,
const std::string &
value);
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
运行时容器:固定格数的背包 / 箱子 / 商店栏等。 行为由 InventorySystem 提供;本类暴露便于脚本绑定的薄封装方法。
一次成功库存变更的事件(供脚本 poll / C++ hook)。
std::string action
add/remove/move/swap/split/merge/transfer/equip/unequip
物品模板(进程级注册表中的定义,不含运行时数量)。
std::string equipSlot
非空表示建议装备槽名;是否可装备由 EquipmentSet 槽位配置最终决定。
std::unordered_map< std::string, std::string > extra
std::vector< std::string > tags
容器中的一格堆叠(空槽:itemId 为空或 quantity <= 0)。
std::unordered_map< std::string, std::string > props
std::vector< std::string > tags