食物是生存 Minecraft 的核心方面,所以创建可食用的物品时,需要考虑食物的用途以及其他可食用物品。
除非是在制作有过于强的物品的模型,否则应该考虑:
- 你的可食用物品会添加或减少多少饥饿值。
- 会给予什么药水效果?
- 是在游戏早期还是末期可用的?
添加食物组件
要为物品添加食物组件,可以先传递到 Item.Settings 实例:
java
new Item.Settings().food(new FoodComponent.Builder().build())1
现在,只要让物品可食用,没有别的。
FoodComponent 类有某些方法,允许你修改玩家吃你的物品时发生的事情:
| 方法 | 描述 |
|---|---|
nutrition | 设置你的物品会补充的饥饿值的数量。 |
saturationModifier | 设置你的物品会增加的饱和度的数量。 |
alwaysEdible | 允许无论饥饿值均能吃你的物品。 |
按照你的喜好修改了 builder 后,可以调用 build() 方法以获取 FoodComponent。
如果您想在玩家吃食物时添加状态效果,则需要将 ConsumableComponent 与 FoodComponent 类一起使用,如以下示例所示:
java
public static final ConsumableComponent POISON_FOOD_CONSUMABLE_COMPONENT = ConsumableComponents.food()
// The duration is in ticks, 20 ticks = 1 second
.consumeEffect(new ApplyEffectsConsumeEffect(new StatusEffectInstance(StatusEffects.POISON, 6 * 20, 1), 1.0f))
.build();
public static final FoodComponent POISON_FOOD_COMPONENT = new FoodComponent.Builder()
.alwaysEdible()
.build();1
2
3
4
5
6
7
2
3
4
5
6
7
与 创建你的第一个物品 类似,该示例将使用上述的组件:
java
public static final Item POISONOUS_APPLE = register(
"poisonous_apple",
Item::new,
new Item.Settings().food(POISON_FOOD_COMPONENT, POISON_FOOD_CONSUMABLE_COMPONENT)
);1
2
3
4
5
2
3
4
5
这会让物品:
- 总是可食用,无论饥饿值均可以吃。
- 吃完会总会给予 6 秒中毒 II。

