[FEAT] provisions 餐食模块迁移
背景
Kuayue 1.0 有一个完整的列车餐食系统:手持食品、放置食物(盒饭/饮品/泡面)、流体(可乐/蓝牛)、状态效果(WarmEffect)。代码在 willow.train.kuayue.block.food.* 和 willow.train.kuayue.initial.food.* 中,注册逻辑与主模组的 AllElements 强耦合。
2.0 架构下,这些功能应独立为 provisions 模块(cn.kycraft.kuayue.content.provisions),仅依赖 core 的注册基础设施和 KasugaLib 框架。注册方式混合 Java + 数据驱动 JSON(与 train-parts 模式一致)。
当前状态:模块目录和 gradle 配置均不存在,需从零搭建。
注册架构
- 放置食物方块: 数据驱动 JSON(
provisions.json)+ Java @Context FactoryRegistry 工厂
- 手持食品 (6种): 纯 Java
ItemReg.of()
- 流体: 纯 Java
FluidReg
- 效果: 纯 Java (NeoForge Registry)
- 辅助物品: 数据驱动 JSON,复用
simple_item 类型
涉及的系统
| 子系统 |
核心互动 |
注册方式 |
| 放置食物 |
放置 → 食用 → 返还残留物 |
数据驱动 JSON |
| 手持食品 |
右键即吃 |
纯 Java |
| 泡面 |
干面 → 泡好的面 → 三状态食用 |
数据驱动 JSON |
| 流体 |
放置/盛放 |
纯 Java |
| 效果 |
被动加成 |
纯 Java |
跨模块交互
core 的 cn.kycraft.kuayue.api 包下新增 FoodProcessor 接口,供 train-parts 等模块实现。泡面的 DriedInstantNoodlesBlockItem 通过 instanceof FoodProcessor 发现加工方块,替代 1.0 对 TeaBoilerBlock 的硬引用。
依赖方向:core ← provisions,core ← train-parts。provisions 对 train-parts 零引用。
Sub-Issues
验收标准
- provisions 模块编译通过,已加入 settings.gradle
- 6 种手持食品:营养/饱和度与 1.0 一致
- 盒饭:两阶段食用,返还午餐盒
- 可乐/蓝牛:放置、饮用、气泡粒子(可乐)、返还空罐
- 泡面:干→湿转化 + 三状态机 + WarmEffect
- 流体:颜色/流速与 1.0 一致,桶可盛放
- 所有放置食物的状态在重进世界后正确恢复
- food block 的 JSON 声明被 KasugaLib 自动注册
[FEAT] provisions 餐食模块迁移
背景
Kuayue 1.0 有一个完整的列车餐食系统:手持食品、放置食物(盒饭/饮品/泡面)、流体(可乐/蓝牛)、状态效果(WarmEffect)。代码在
willow.train.kuayue.block.food.*和willow.train.kuayue.initial.food.*中,注册逻辑与主模组的AllElements强耦合。2.0 架构下,这些功能应独立为
provisions模块(cn.kycraft.kuayue.content.provisions),仅依赖core的注册基础设施和 KasugaLib 框架。注册方式混合 Java + 数据驱动 JSON(与 train-parts 模式一致)。当前状态:模块目录和 gradle 配置均不存在,需从零搭建。
注册架构
provisions.json)+ Java@ContextFactoryRegistry 工厂ItemReg.of()FluidRegsimple_item类型涉及的系统
跨模块交互
core的cn.kycraft.kuayue.api包下新增FoodProcessor接口,供 train-parts 等模块实现。泡面的DriedInstantNoodlesBlockItem通过instanceof FoodProcessor发现加工方块,替代 1.0 对TeaBoilerBlock的硬引用。依赖方向:
core ← provisions,core ← train-parts。provisions 对 train-parts 零引用。Sub-Issues
验收标准