🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Appearance
🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Appearance
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.
Aggiungere una pozione segue un percorso simile a quello per aggiungere un oggetto. Dovrai creare un'istanza della tua pozione e registrarla chiamando BrewingRecipeRegistry.registerPotionRecipe.
INFO
Quando l'API di Fabric è presente, BrewingRecipeRegistry.registerPotionRecipe è reso disponibile attraverso un Access Widener.
Iniziamo dichiarando un attributo per conservare la tua istanza Potion. Useremo direttamente la classe dell'initializer per conservarla.
public static final Potion TATER_POTION =
Registry.register(
Registries.POTION,
new Identifier("fabric-docs-reference", "tater"),
new Potion(
new StatusEffectInstance(
FabricDocsReferenceEffects.TATER_EFFECT,
3600,
0)));Passiamo una istanza di StatusEffectInstance, che prende 3 parametri:
StatusEffect type - Un effetto. Qui usiamo il nostro effetto personalizzato. In alternativa puoi accedere agli effetti vanilla attraverso net.minecraft.entity.effect.StatusEffects.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 favore guarda la guida Effetti.
Nel nostro initializer, chiamiamo BrewingRecipeRegistry.registerPotionRecipe.
BrewingRecipeRegistry.registerPotionRecipe(Potions.WATER, Items.POTATO, TATER_POTION);registerPotionRecipe prende 3 parametri:
Potion input - La 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.Potion output - La pozione risultante.Se utilizzi l'API di Fabric, l'invoker mixin non è necessario e si può effettuare una chiamata diretta a BrewingRecipeRegistry.registerPotionRecipe.
L'esempio per intero:
public class FabricDocsReferencePotions implements ModInitializer {
public static final Potion TATER_POTION =
Registry.register(
Registries.POTION,
new Identifier("fabric-docs-reference", "tater"),
new Potion(
new StatusEffectInstance(
FabricDocsReferenceEffects.TATER_EFFECT,
3600,
0)));
@Override
public void onInitialize() {
BrewingRecipeRegistry.registerPotionRecipe(Potions.WATER, Items.POTATO, TATER_POTION);
// Use the mixin invoker if you are not using Fabric API
// BrewingRecipeRegistryInvoker.invokeRegisterPotionRecipe(Potions.WATER, Items.POTATO, TATER_POTION);
}
}Una volta registrato, puoi distillare una pozione Tater usando una patata.

Registrare Pozioni Usando un Ingredient
Con l'aiuto dell'API di Fabric, è possibile registrare una pozione usando un Ingredient anziché un Item usando net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.
Senza l'API di Fabric, BrewingRecipeRegistry.registerPotionRecipe sarà privato. Per accedere a questo metodo usa il seguente invoker mixin o usa un Access Widener.
@Mixin(BrewingRecipeRegistry.class)
public interface BrewingRecipeRegistryInvoker {
@Invoker("registerPotionRecipe")
static void invokeRegisterPotionRecipe(Potion input, Item item, Potion output) {
throw new AssertionError();
}
}