用途:为 Godot 项目提供背包系统的实现蓝图,覆盖 Diablo、Resident Evil、Minecraft 等风格的槽位容器、堆叠、重量上限、装备与拖放 UI,适合构建 RPG 背包、生存物品管理或战利品系统。
主要能力与场景路由:槽位背包(WoW 式堆叠)对应 inventory_data_resource.gd、item_slot_data.gd、inventory_ui_controller.gd;俄罗斯方块网格(Diablo/RE 占用格)对应 grid_inventory_logic.gd 或 inventory_grid.gd;装备系统配合 Item Resource 与 RPG 属性,通过 drag_and_drop_slot.gd 拖放;战利品表对应 loot_table_resource.gd 与 item_pickup_node.gd;持久化对应 inventory_persistence.gd;消耗品对应 consumable_item_logic.gd;数据库查询对应 item_database_loader.gd。
必读脚本:inventory_item_resource.gd、inventory_data_resource.gd、inventory_ui_controller.gd。
核心约束:物品用 Resource 而非 Node;添加前必须校验堆叠与重量;UI 不得静默修改背包数组,数据层负责变更、UI 监听;数量用 int 不用 float;批量操作只发一次 inventory_updated 信号;物品引用用 String/StringName id 加数据库,不硬编码;刷新时复用槽位控件,不 queue_free 重建;不在 _process 中分配新 Resource;运行时用 duplicate(true) 避免篡改共享蓝图;访问图标前用 is_instance_valid() 判空。
添加流程:校验重量/体积,第一遍填满未满堆叠,第二遍用空槽或网格占位,返回溢出数量并只发一次 UI 信号。保存时仅序列化 item_id/resource_path 与 amount,不保存嵌套 Resource。
限制与依赖:需要先掌握 Resource 数据模式、信号架构、GDScript 与 UI 容器相关技能;具体脚本内容与完整代码本资料未提供。