🇧🇷 Português (Portuguese - Brazil)
🇧🇷 Português (Portuguese - Brazil)
Aparência
🇧🇷 Português (Portuguese - Brazil)
🇧🇷 Português (Portuguese - Brazil)
Aparência
This page is written for version:
1.20.4
This page is written for version:
1.20.4
Poções são consumíveis que concedem efeitos a uma entidade. Um jogador pode preparar poções usando um Suporte de Poções ou obtê-las como itens através de várias outras mecânicas do jogo.
Adicionar uma poção é um processo similar ao de adicionar um item. Você criará uma instância de sua poção e a registrará chamando BrewingRecipeRegistry.registerPotionRecipe
.
INFO
Quando o Fabric API está presente, BrewingRecipeRegistry.registerPotionRecipe
se torna acessível através de um Acess Widener.
Vamos começar declarando um campo para armazenar sua instância de Potion
. Utilizaremos a classe inicializadora diretamente para segurar isso.
public static final Potion TATER_POTION =
Registry.register(
Registries.POTION,
Identifier.of("fabric-docs-reference", "tater"),
new Potion("tater",
new StatusEffectInstance(
FabricDocsReferenceEffects.TATER,
3600,
0)));
Passamos uma instância de StatusEffectInstance
, que leva 3 parâmetros:
StatusEffect type
- Um efeito. Usamos nosso efeito personalizado aqui. Você também pode acessar efeitos vanilla através de net.minecraft.entity.effect.StatusEffects
.int duration
- Duração do efeito em ticks do jogo.int amplifier
- Um amplificador para o efeito. Por exemplo, Pressa II teria um amplificador de 1.INFO
Para criar seu próprio efeito, consulte o guia de Efeitos.
No nosso inicializador, chamamos BrewingRecipeRegistry.registerPotionRecipe
.
FabricBrewingRecipeRegistryBuilder.BUILD.register(builder -> {
registerPotionRecipe
leva 3 parâmetros:
Potion input
- A poção inicial. Normalmente isso pode ser uma Garrafa de Água ou uma Poção Estranha.Item item
- O item que é o ingrediente principal da poção.Potion output
- A poção resultante.Se você usa a Fabric API, o invocador de mixin não é necessário e uma chamada direta do BrewingRecipeRegistry.registerPotionRecipe
pode ser feita.
O exemplo completo:
public class FabricDocsReferencePotions implements ModInitializer {
public static final Potion TATER_POTION =
Registry.register(
Registries.POTION,
Identifier.of("fabric-docs-reference", "tater"),
new Potion("tater",
new StatusEffectInstance(
FabricDocsReferenceEffects.TATER,
3600,
0)));
@Override
public void onInitialize() {
FabricBrewingRecipeRegistryBuilder.BUILD.register(builder -> {
builder.registerPotionRecipe(
// Input potion.
Potions.WATER,
// Ingredient
Items.POTATO,
// Output potion.
Registries.POTION.getEntry(TATER_POTION)
);
});
}
}
Assim que registrada, você pode preparar uma poção Tater usando uma batata.
Registrando Poções usando um Ingredient
Com ajuda do Fabric API, é possível registrar uma poção usando um Ingredient
em vez de um Item
usando net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry
.
Sem o Fabric API, BrewingRecipeRegistry.registerPotionRecipe
será privado. Para acessar este método, use o seguinte invocador de mixin ou use um Acess Widener.
Not Found: /home/runner/work/fabric-docs/fabric-docs/reference/latest/src/main/java/com/example/docs/mixin/potion/BrewingRecipeRegistryInvoker.java