Skip to content

放置食物系统:基类 + 盒饭 + 饮品(数据驱动注册) #8

Description

@LingshijunRenzy

背景

放置食物是餐食系统的核心机械:方块放置在地面,右键食用,返还容器。1.0 有三种形状(BOX/BOWL/BOTTLE),各自有独特行为(盒饭两阶段、可乐气泡、饮品返还空罐)。

1.0 参考:srcRef/1.0/src/main/java/willow/train/kuayue/block/food/(PlacementFoodBlock、TrainDietBoxBlock、ParticlesDrinkBlock)

做什么

1. Java 方块类(行为留在 Java)

  • PlacementFoodBlock 基类:BOX/BOWL/BOTTLE 三种 shape,FACING 旋转,canPlace 检查顶面
  • TrainDietBoxBlock:两阶段吃法。第一口获得 Regeneration I (5s),第二口返还 lunch_box。继承 1.0 的 EMPTY 状态 + ExternalRemainderBlockItem 机制
  • ParticlesDrinkBlock:直接食用,返还 empty_can/empty_can_blue。KUA_COLA 有 BUBBLE_COLUMN_UP 粒子,BLUE_BULL 无粒子。食用后获得对应的物品效果

2. BlockItem 类

  • PlacementFoodBlockItem:通用放置食物物品
  • PlacementDrinkBlockItem:饮品物品(DRINK 游戏动画)

3. 注册方式(数据驱动)

  • 这些方块通过 ProvisionsFactories.java 注册的工厂类型在 JSON 中声明
  • diet_box 工厂 → train_diet_1
  • drink 工厂 → kua_cola(有粒子)、blue_bull(无粒子)
  • Block 属性(strength、sound_type、map_color)在 provisions.json 的 registry_group 中定义,可逐 block 覆盖

验收标准

  • 盒饭放置可吃,第一口补饥饿值 + 再生效果,第二口返还午餐盒
  • 可乐放置可喝,喝时有气泡粒子,返还空罐
  • 蓝牛放置可喝,无粒子,返还蓝空罐
  • 所有放置食物只能放在方块顶面,可旋转
  • 状态在重进世界后正确恢复

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions