背景
provisions 模块的骨架搭建,包括模块目录、build.gradle、模块入口、FoodProcessor 接口定义在 core。手持食品(6 种纯 Item 食物)是此模块最简单的子系统。
1.0 参考:srcRef/1.0/src/main/java/willow/train/kuayue/initial/food/AllFoods.java(手持食品注册)
做什么
1. 模块骨架
- 创建
modules/provisions/ 目录和 build.gradle(参考 scheduling 模块的 monorepo 模式)
- 创建
ProvisionsModule.java(模块入口,无需 @mod,core 已持有 @mod("kuayue"))
- 在
settings.gradle 添加 include("provisions")
2. FoodProcessor 接口(core 模块)
- 在
cn.kycraft.kuayue.api 包下定义 FoodProcessor 接口
- 含
canProcess(ItemStack)、process(Level, BlockPos, Player, ItemStack) 方法
- 返回
ProcessResult record(output, sound, particle)
3. 数据驱动注册基础设施
- 创建
init/ProvisionsFactories.java,标注 @Context
- 注册 4 个 FactoryRegistry 类型:
diet_box、drink、soaked_noodles、placement_food
- 创建
data/kuayue/kasugalib/provisions.json,定义 registry_group + 所有 food block 列表
- Block 属性(strength、map_color、sound_type)声明在 JSON 而非 Java 中
4. 手持食品(Java 直接注册)
- 6 种手持食品:ham_sausage、marinated_egg、half_marinated_egg、calcium_milk_biscuits、spicy_fish_tofu、salt_baked_drumsticks
- 每个用
ItemReg.of("xxx", HandHeldFoodItem::new) 直接注册(不值得数据驱动)
- 营养/饱和度与 1.0 一致,fast 修饰符
5. 辅助物品(JSON 注册)
- lunch_box、empty_can、empty_can_blue、monosodium_glutamate、salt
- 在 provisions.json 中注册,复用内置
simple_item 类型
验收标准
- provisions 模块编译通过,已加入 settings.gradle
- 6 种手持食品:食用后获得正确的营养/饱和度
- FactoryRegistry 注册了所有必需的工厂类型
- provisions.json 被 KasugaLib 自动发现并正确注册所有 blocks + items
背景
provisions 模块的骨架搭建,包括模块目录、build.gradle、模块入口、FoodProcessor 接口定义在 core。手持食品(6 种纯 Item 食物)是此模块最简单的子系统。
1.0 参考:
srcRef/1.0/src/main/java/willow/train/kuayue/initial/food/AllFoods.java(手持食品注册)做什么
1. 模块骨架
modules/provisions/目录和build.gradle(参考 scheduling 模块的 monorepo 模式)ProvisionsModule.java(模块入口,无需 @mod,core 已持有 @mod("kuayue"))settings.gradle添加include("provisions")2. FoodProcessor 接口(core 模块)
cn.kycraft.kuayue.api包下定义FoodProcessor接口canProcess(ItemStack)、process(Level, BlockPos, Player, ItemStack)方法ProcessResultrecord(output, sound, particle)3. 数据驱动注册基础设施
init/ProvisionsFactories.java,标注@Contextdiet_box、drink、soaked_noodles、placement_fooddata/kuayue/kasugalib/provisions.json,定义 registry_group + 所有 food block 列表4. 手持食品(Java 直接注册)
ItemReg.of("xxx", HandHeldFoodItem::new)直接注册(不值得数据驱动)5. 辅助物品(JSON 注册)
simple_item类型验收标准