Зелья 26.1.2
Узнайте, как добавить зелье для различных эффектов мобов.
Зелья — это расходные материалы, которые дают сущности определенный эффект. Игрок может варить зелья, используя Варочную Стойку, или получать их как предметы с помощью различных других игровых механик.
Пользовательские зелья
Так же, как предметы и блоки, зелья необходимо регистрировать.
Создание зелья
Давайте начнем с объявления поля для хранения экземпляра вашего Potion. Мы будем напрямую использовать ModInitializer-реализующий класс для хранения этого. Обратите внимание на использование метода Registry.registerForHolder, так как, подобно эффектам мобов, большинство ванильных методов, работающих с зельями, предпочитают принимать их в виде холдеров/контейнеров (Holder).
java
public static final Holder<Potion> TATER_POTION =
Registry.registerForHolder(
BuiltInRegistries.POTION,
Identifier.fromNamespaceAndPath(ExampleMod.MOD_ID, "tater"),
new Potion("tater",
new MobEffectInstance(
ExampleModEffects.TATER,
3600,
0
)
)
);1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Мы передаем экземпляр MobEffectInstance, который принимает 3 параметра:
Holder<MobEffect> effect— Эффект, представленный в виде контейнера. Здесь мы используем наш собственный эффект. В качестве альтернативы вы можете получить доступ к эффектам классического Minecraft через классMobEffects.int duration- Длительность эффекта в игровых тиках.int amplifier- Усилитель эффекта. Например, Haste II будет иметь усилитель 1.
INFO
Чтобы создать свой собственный эффект зелья, ознакомьтесь с руководством Эффекты.
Регистрация зелья
В нашем инициализаторе мы будем использовать событие FabricBrewingRecipeRegistryBuilder.BUILD для регистрации нашего зелья с помощью метода BrewingRecipeRegistry.registerPotionRecipe.
java
FabricPotionBrewingBuilder.BUILD.register(builder -> {
builder.addMix(
// Input potion.
Potions.WATER,
// Ingredient
Items.POTATO,
// Output potion.
TATER_POTION
);
});1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
addMix принимает 3 параметра:
Holder<Potion> from— Исходное зелье, представленное в виде контейнера. Обычно это может быть бутылка с водой или мутное зелье.Item item- Предмет, являющийся основным ингредиентом зелья.Holder<Potion> to— Результирующее зелье, представленное в виде контейнера.
После регистрации вы сможете сварить зелье «Tater» из картофеля.





