Еда — это ключевой аспект выживания в Minecraft, поэтому при создании съедобных предметов вам следует учитывать их использование с другими съедобными предметами.
Если вы не создаете мод с очень мощными предметами, вам следует учесть:
- Насколько сильное чувство голода добавляет или убирает ваш съедобный продукт.
- Какой эффект(ы) зелья оно дает?
- Доступно ли оно на ранней или конечной стадии игры?
Добавляем компонент еды
Чтобы добавить пищевой компонент к элементу, мы можем передать его экземпляру Item.Settings:
java
new Item.Settings().food(new FoodComponent.Builder().build())1
На данный момент это просто делает продукт съедобным и ничего более.
Класс FoodComponent.Builder имеет несколько методов, которые позволяют вам изменить то, что происходит, когда игрок съедает ваш предмет:
| Метод | Описание |
|---|---|
nutrition | Устанавливает количество очков голода, которое восполнит ваш предмет. |
saturationModifier | Устанавливает количество точек насыщенности, которые добавит ваш элемент. |
alwaysEdible | Позволяет съесть ваш предмет независимо от уровня голода. |
После того как вы изменили конструктор по своему вкусу, вы можете вызвать метод 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
Это делает предмет:
- Всегда съедобным, может быть съеден независимо от уровня голода.
- Всегда дающим Отравление II на 6 секунд когда съеден.

