GFInventoryModel¶
API Reference / Domain / 类索引
- 路径:
addons/gf/extensions/domain/inventory/gf_inventory_model.gd - 模块:
Domain - 继承:
GFModel - API:
public - 类别:领域模型 (
domain_model) - 首次版本:
3.17.0
通用可序列化库存模型。 只管理 item_id、数量和元数据,不假设道具类型、品质、装备等业务概念。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 方法 | add_item |
func add_item(item_id: StringName, amount: int = 1, metadata: Dictionary = {}) -> void: |
| 方法 | remove_item |
func remove_item(item_id: StringName, amount: int = 1) -> bool: |
| 方法 | set_item_amount |
func set_item_amount(item_id: StringName, amount: int) -> void: |
| 方法 | get_item_amount |
func get_item_amount(item_id: StringName) -> int: |
| 方法 | has_item |
func has_item(item_id: StringName, amount: int = 1) -> bool: |
| 方法 | get_item_metadata |
func get_item_metadata(item_id: StringName) -> Dictionary: |
| 方法 | get_items |
func get_items() -> Dictionary: |
| 方法 | clear |
func clear() -> void: |
| 方法 | to_dict |
func to_dict() -> Dictionary: |
| 方法 | from_dict |
func from_dict(data: Dictionary) -> void: |
方法¶
add_item¶
- API:
public
添加物品数量。
参数:
| 名称 | 说明 |
|---|---|
item_id |
物品 ID。 |
amount |
增加数量。 |
metadata |
可选元数据;首次加入时保存。 |
结构:
metadata: Dictionary,首次加入物品时保存的项目自定义元数据。
remove_item¶
- API:
public
移除物品数量。
参数:
| 名称 | 说明 |
|---|---|
item_id |
物品 ID。 |
amount |
移除数量。 |
返回:成功移除完整数量时返回 true。
set_item_amount¶
- API:
public
设置物品数量。
参数:
| 名称 | 说明 |
|---|---|
item_id |
物品 ID。 |
amount |
新数量;小于等于 0 时移除。 |
get_item_amount¶
- API:
public
获取物品数量。
参数:
| 名称 | 说明 |
|---|---|
item_id |
物品 ID。 |
返回:数量。
has_item¶
- API:
public
检查是否拥有足够数量。
参数:
| 名称 | 说明 |
|---|---|
item_id |
物品 ID。 |
amount |
需要数量。 |
返回:足够时返回 true。
get_item_metadata¶
- API:
public
获取物品元数据。
参数:
| 名称 | 说明 |
|---|---|
item_id |
物品 ID。 |
返回:元数据副本。
结构:
return: Dictionary,物品项目自定义元数据副本;不存在时为空字典。
get_items¶
- API:
public
获取库存快照。
返回:库存字典副本。
结构:
return: Dictionary,键为 StringName 物品 ID,值为包含 amount 与 metadata 的堆叠记录。
clear¶
- API:
public
清空库存。
to_dict¶
- API:
public
序列化库存状态。
返回:可写入存档的字典。
结构:
return: Dictionary,包含 items 字典;items 键为 String 物品 ID,值为 amount 与 metadata 记录。
from_dict¶
- API:
public
从字典恢复库存状态。
参数:
| 名称 | 说明 |
|---|---|
data |
序列化数据。 |
结构:
data: Dictionary,包含 items 字典;items 键为 String 物品 ID,值为 amount 与 metadata 记录。