module-inventory 独立模块 package 说明
日期:2026-04-21
1. package 职责
module-inventory 是背包与物品变更模块 package,当前负责:
- 冻结
inventory_slot的首版领域字段与枚举类型。 - 提供
apply_inventory_mutation纯规则入口,先覆盖:GrantItemConsumeItemEquipItemUnequipItem
- 冻结
RuntimeInventoryStateQueryInput / RuntimeInventoryStateSnapshot / RuntimeInventoryStateRecord - 为
spacetime-module的背包表、procedure 与 reducer 聚合提供可复用契约。
2. 当前阶段说明
当前提交已经从“目录占位”推进到“真实 crate 基座”,但仍然只落最小背包主链,不提前扩成完整玩法迁移。
本轮已落地:
InventorySlotSnapshot/InventoryMutationInput/InventoryMutationOutcome- 背包堆叠、扣减、装备切换、卸下回包的纯规则
runtime_session_id + actor_user_id作用域下的最小 inventory state query contract- 与
spacetime-module对接所需的SpacetimeType兼容类型
本轮明确未做:
UseItem / Craft / Dismantle / Reforgenpc_trade / npc_gift / quest_turn_in的专属 reducer- 前端背包 view 或 Axum façade
- 旧
GameState.playerInventory / playerEquipment全量兼容
3. 当前冻结边界
module-inventory只负责物品状态真相与背包规则,不把外部 AI、OSS 或 HTTP 协议塞进模块内部。- 与
module-story、module-runtime-item、module-npc的协作通过明确 reducer 或投影边界完成。 - 背包真相由
spacetime-module聚合,对外兼容输出后续由api-server或 view 补齐。
4. 关联文档
docs/technical/M4_RPG_RUNTIME_INVENTORY_SPACETIMEDB_BASELINE_2026-04-21.mdbackend-rewrite-tasklist/03_M4_STORY_AND_GAMEPLAY.md