Le pozioni sono oggetti consumabili che conferiscono un effetto a un'entità. Un giocatore può preparare delle pozioni usando l'Alambicco oppure ottenerle come oggetti attraverso varie meccaniche di gioco.
Pozioni Personalizzate
Proprio come gli oggetti e i blocchi, le pozioni devono essere registrate.
Creare la Pozione
Iniziamo dichiarando un attributo per conservare la tua istanza Potion. Useremo direttamente una classe che implementi ModInitializer per conservarla.
java
public class FabricDocsReferencePotions implements ModInitializer {
public static final Potion TATER_POTION =
Registry.register(
Registries.POTION,
Identifier.of(FabricDocsReference.MOD_ID, "tater"),
new Potion("tater",
new StatusEffectInstance(
FabricDocsReferenceEffects.TATER,
3600,
0)));1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Passiamo una istanza di StatusEffectInstance, che accetta 3 parametri:
RegistryEntry<StatusEffect> type- Un effetto. Qui usiamo il nostro effetto personalizzato. In alternativa puoi accedere agli effetti vanilla attraverso la classe vanillaStatusEffects.int duration- Durata dell'effetto espressa in tick di gioco.int amplifier- Un amplificatore per l'effetto. Per esempio, Sollecitudine II avrebbe un amplificatore di 1.
INFO
Per creare il tuo effetto personalizzato per la pozione, per favore guarda la guida Effetti.
Registrare la Pozione
Nel nostro initializer, useremo l'evento FabricBrewingRecipeRegistryBuilder.BUILD per registrare la nostra pozione usando il metodo BrewingRecipeRegistry.registerPotionRecipe.
java
@Override
public void onInitialize() {
FabricBrewingRecipeRegistryBuilder.BUILD.register(builder -> {
builder.registerPotionRecipe(
// Input potion.
Potions.WATER,
// Ingredient
Items.POTATO,
// Output potion.
Registries.POTION.getEntry(TATER_POTION)
);
});1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
registerPotionRecipe accetta 3 parametri:
RegistryEntry<Potion> input- La voce di registry della pozione iniziale. Solitamente questa può essere una Ampolla d'Acqua o una Pozione Strana.Item item- L'oggetto che rappresenta l'ingrediente principale della pozione.RegistryEntry<Potion> output- La voce di registry della pozione risultante.
Una volta registrato, puoi distillare una pozione Tater usando una patata.




