🇮🇹 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();
}
}