载入中...
搜索中...
未找到
Inventory.h
浏览该文件的文档.
1#pragma once
2
8#include "common/Module.h"
9#include "inventory/Bag.h"
10#include "inventory/Equipment.h"
11
12#include <string>
13
14namespace eve::inventory {
15
17class Inventory : public Module {
18public:
20 Inventory() = default;
21 ~Inventory() override = default;
22
24 int registerItemsFromJson(const std::string &json);
30 bool hasItemDefinition(const std::string &itemId);
31 std::string getItemDisplayName(const std::string &itemId);
32 int getItemMaxStack(const std::string &itemId);
33 float getItemWeight(const std::string &itemId);
34 float getItemVolume(const std::string &itemId);
35 std::string getItemCategory(const std::string &itemId);
36 std::string getItemEquipSlot(const std::string &itemId);
37 bool itemHasTag(const std::string &itemId, const std::string &tag);
38 std::string getItemExtra(const std::string &itemId, const std::string &key,
39 const std::string &fallback = {});
40
42 Bag *newBag(int slotCount);
44
46 int transferItem(Bag *from, Bag *to, const std::string &itemId, int quantity);
47 int transferSlot(Bag *from, int fromSlot, Bag *to, int quantity);
48
50 bool hasAcceptRule(const std::string &name);
51 bool hasCapacityPolicy(const std::string &name);
52 bool hasStackRule(const std::string &name);
53
55 void clearChangeEvents();
56 int getChangeEventCount() const;
57 std::string getChangeEventAction(int index) const;
58 std::string getChangeEventBagId(int index) const;
59 std::string getChangeEventOtherBagId(int index) const;
60 std::string getChangeEventItemId(int index) const;
61 int getChangeEventQuantity(int index) const;
62 int getChangeEventSlot(int index) const;
63 int getChangeEventOtherSlot(int index) const;
64 std::string getChangeEventEquipSlot(int index) const;
65
66};
67
68} // namespace eve::inventory
const char * name
Definition RockMesh.cpp:21
格子型物品容器(脚本可直接操作)。
Definition Bag.h:17
背包模块(eve.Inventory)。
Definition Inventory.h:17
bool hasItemDefinition(const std::string &itemId)
物品定义查询(显示名/堆叠/重量/体积/类别/装备槽/标签/额外属性)。
Definition Inventory.cpp:20
std::string getItemExtra(const std::string &itemId, const std::string &key, const std::string &fallback={})
Definition Inventory.cpp:59
int transferItem(Bag *from, Bag *to, const std::string &itemId, int quantity)
跨容器转移(按物品 id / 按槽位);返回实际转移数量。
Definition Inventory.cpp:75
std::string getChangeEventOtherBagId(int index) const
~Inventory() override=default
std::string getChangeEventItemId(int index) const
int getChangeEventOtherSlot(int index) const
EquipmentSet * newEquipmentSet()
Definition Inventory.cpp:70
int getItemDefinitionCount()
已注册物品定义数量。
Definition Inventory.cpp:18
bool hasStackRule(const std::string &name)
Definition Inventory.cpp:91
std::string getChangeEventAction(int index) const
std::string getItemCategory(const std::string &itemId)
Definition Inventory.cpp:44
int getChangeEventSlot(int index) const
void clearChangeEvents()
变更事件队列(添加/移除/移动/装备)。
Definition Inventory.cpp:95
int transferSlot(Bag *from, int fromSlot, Bag *to, int quantity)
Definition Inventory.cpp:79
void clearItemDefinitions()
清空物品定义。
Definition Inventory.cpp:16
int registerItemsFromJson(const std::string &json)
从 JSON 注册物品定义;返回成功注册数量。
Definition Inventory.cpp:11
Bag * newBag(int slotCount)
工厂:创建容器 / 装备栏。
Definition Inventory.cpp:65
std::string getChangeEventBagId(int index) const
int getChangeEventCount() const
Definition Inventory.cpp:97
int getChangeEventQuantity(int index) const
bool itemHasTag(const std::string &itemId, const std::string &tag)
Definition Inventory.cpp:54
std::string getItemDisplayName(const std::string &itemId)
Definition Inventory.cpp:24
int getItemMaxStack(const std::string &itemId)
Definition Inventory.cpp:29
bool hasAcceptRule(const std::string &name)
扩展策略是否存在(接受规则 / 容量策略 / 堆叠规则)。
Definition Inventory.cpp:83
float getItemVolume(const std::string &itemId)
Definition Inventory.cpp:39
std::string getItemEquipSlot(const std::string &itemId)
Definition Inventory.cpp:49
bool hasCapacityPolicy(const std::string &name)
Definition Inventory.cpp:87
std::string getChangeEventEquipSlot(int index) const
float getItemWeight(const std::string &itemId)
Definition Inventory.cpp:34
运行时容器:固定格数的背包 / 箱子 / 商店栏等。 行为由 InventorySystem 提供;本类暴露便于脚本绑定的薄封装方法。
Definition Bag.cpp:6