跳转至

GFInventorySlotDefinition

API Reference / Domain / 类索引

  • 路径:addons/gf/extensions/domain/inventory/gf_inventory_slot_definition.gd
  • 模块:Domain
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:3.20.0

通用库存槽位接收规则。 只描述一个槽位允许接收哪些物品或分类,不保存槽位内容,也不绑定 UI、 拖拽、装备类型或具体项目玩法。项目可把它挂到 GFSlotInventoryModel.slot_definitions 上,为背包、快捷栏或容器槽位提供轻量约束。

成员概览

类型 名称 签名
属性 display_name var display_name: String = ""
属性 accepted_item_ids var accepted_item_ids: Array[StringName] = []
属性 rejected_item_ids var rejected_item_ids: Array[StringName] = []
属性 accepted_categories var accepted_categories: Array[StringName] = []
属性 require_all_categories var require_all_categories: bool = false
属性 metadata var metadata: Dictionary = {}
属性 acceptance_checker var acceptance_checker: Callable = Callable()
方法 can_accept func can_accept( item_id: StringName, definition: GFInventoryItemDefinition = null, instance_data: Dictionary = {}, slot_index: int = -1, inventory: Object = null ) -> bool:
方法 to_dict func to_dict() -> Dictionary:
方法 apply_dict func apply_dict(data: Dictionary) -> void:
方法 from_dict static func from_dict(data: Dictionary) -> GFInventorySlotDefinition:

属性

display_name

  • API:public
var display_name: String = ""

显示名称,供项目 UI 或编辑器工具使用。

accepted_item_ids

  • API:public
var accepted_item_ids: Array[StringName] = []

允许的物品 ID。为空表示不按物品 ID 限制。

结构:

  • accepted_item_ids: Array[StringName],槽位允许接收的物品 ID;为空时不限制。

rejected_item_ids

  • API:public
var rejected_item_ids: Array[StringName] = []

禁止的物品 ID。优先级高于 accepted_item_ids。

结构:

  • rejected_item_ids: Array[StringName],槽位拒绝接收的物品 ID。

accepted_categories

  • API:public
var accepted_categories: Array[StringName] = []

允许的物品分类。为空表示不按分类限制。

结构:

  • accepted_categories: Array[StringName],槽位允许接收的物品分类;为空时不限制。

require_all_categories

  • API:public
var require_all_categories: bool = false

是否要求物品同时拥有全部 accepted_categories。false 表示拥有任一分类即可。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。

结构:

  • metadata: Dictionary,项目自定义槽位元数据;GF 不读取或改写其中字段。

acceptance_checker

  • API:public
var acceptance_checker: Callable = Callable()

可选接收检查回调。签名为 Callable(item_id, definition, instance_data, slot_index, inventory) -> bool。

方法

can_accept

  • API:public
func can_accept( item_id: StringName, definition: GFInventoryItemDefinition = null, instance_data: Dictionary = {}, slot_index: int = -1, inventory: Object = null ) -> bool:

判断槽位是否接受指定物品。

参数:

名称 说明
item_id 物品标识。
definition 可选物品定义;分类规则需要该定义。
instance_data 物品实例数据。
slot_index 槽位索引。
inventory 调用方库存模型。

返回:接受时返回 true。

结构:

  • instance_data: Dictionary,项目自定义物品实例数据。

to_dict

  • API:public
func to_dict() -> Dictionary:

转换为字典。

返回:可序列化字典。

结构:

  • return: Dictionary,包含 display_name、accepted_item_ids、rejected_item_ids、accepted_categories、require_all_categories 与 metadata。

apply_dict

  • API:public
func apply_dict(data: Dictionary) -> void:

应用字典数据。

参数:

名称 说明
data 字典数据。

结构:

  • data: Dictionary,可包含 display_name、accepted_item_ids、rejected_item_ids、accepted_categories、require_all_categories 与 metadata。

from_dict

  • API:public
static func from_dict(data: Dictionary) -> GFInventorySlotDefinition:

从字典创建槽位定义。

参数:

名称 说明
data 字典数据。

返回:槽位定义。

结构:

  • data: Dictionary,可包含 display_name、accepted_item_ids、rejected_item_ids、accepted_categories、require_all_categories 与 metadata。