Еда — это ключевой аспект выживания в Minecraft, поэтому при создании съедобных предметов вам следует учитывать их использование с другими съедобными предметами.
Если вы не создаете мод с очень мощными предметами, вам следует учесть:
- Насколько сильное чувство голода добавляет или убирает ваш съедобный продукт.
- Какой эффект(ы) зелья оно дает?
- Доступно ли оно на ранней или конечной стадии игры?
Добавляем компонент еды
Чтобы добавить пищевой компонент к элементу, мы можем передать его экземпляру Item.Settings:
java
new Item.Settings().food(new FoodComponent.Builder().build())1
На данный момент это просто делает продукт съедобным и ничего более.
Класс FoodComponent.Builder имеет множество методов, которые позволяют вам изменять то, что происходит, когда игрок съедает ваш предмет:
| Метод | Описание |
|---|---|
nutrition | Устанавливает количество очков голода, которое восполнит ваш предмет. |
saturationModifier | Устанавливает количество точек насыщенности, которые добавит ваш элемент. |
alwaysEdible | Позволяет съесть ваш предмет независимо от уровня голода. |
snack | Указывает, что ваш предмет — закуска. |
statusEffect | Adds a status effect when you eat your item. Добавляет эффект статуса, когда вы съедаете свой предмет. |
После того как вы изменили конструктор по своему вкусу, вы можете вызвать метод build(), чтобы получить FoodComponent.
java
public static final FoodComponent POISON_FOOD_COMPONENT = new FoodComponent.Builder()
.alwaysEdible()
.snack()
// The duration is in ticks, 20 ticks = 1 second
.statusEffect(new StatusEffectInstance(StatusEffects.POISON, 6 * 20, 1), 1.0f)
.build();1
2
3
4
5
6
2
3
4
5
6
Подобно примеру на странице Создание вашего первого элемента, я буду использовать указанный выше компонент:
java
public static final Item POISONOUS_APPLE = register(
new Item(new Item.Settings().food(POISON_FOOD_COMPONENT)),
"poisonous_apple"
);1
2
3
4
2
3
4
Это делает предмет:
- Всегда съедобным, может быть съеден независимо от уровня голода.
- «Закуска».
- Всегда дающим Отравление II на 6 секунд когда съеден.

