SuperAPI AI 工具集

inventory-system

通用与其它

查看项目

更新于 10-15 22:40

技能介绍

用途:在 Godot 4.3+ 中构建背包系统,覆盖基于 Resource 的物品、槽位管理、堆叠与 UI 绑定。技能本身承载设计决策,具体实现放在 references/ 目录(先 GDScript 后 C#),按需加载。

主要能力:三层架构——UI 层(InventoryUI、GridContainer、SlotUI,支持拖放与悬停预览)、Inventory 节点层(slots 数组、add_item/remove_item/has_item/get_item_count、inventory_changed 等信号)、数据层(ItemData 资源含 id、name、description、icon、max_stack_size、item_type;InventorySlot 含 item 与 quantity)。还包含装备扩展(按 SlotType 枚举的装备槽与属性汇总)和序列化(按物品资源路径存 id 与数量,带版本字段)。

关键决策:物品身份用 .tres 资源而非字典;槽位容器用 RefCounted 而非 Resource;add_item 返回剩余数量(leftover int)而非 bool。实现要点:先填已有堆叠再占空槽;每次操作只发一次 inventory_changed;物品按引用比较,若运行时 duplicate 则改用 ItemData.id;数量归零时把 item 置 null;用 max_stack_size = 1 阻止装备与钥匙堆叠;C# 中 ItemData 需标 [GlobalClass]。

使用方式:按需加载 references/core-classes.md、equipment.md、ui-binding.md、serialization.md 等文件,并遵循实现清单(如 ItemData 放在 res://items/ 并纳入版本控制、序列化只存 id 与数量、ItemRegistry 统一反序列化)。

适用场景:固定槽位数组的背包。若需无槽位的重量背包、带形状物品的网格背包或无限堆叠列表,该骨架不适用,需另行说明。

限制:资料未提供安装命令、收费与价格信息,也未给出完整代码示例,具体实现需查阅 references/ 文件。