23 juin 2016, 23:46

Sommaire

Introduction

Bonjour à tous, je suis BrokenSwing et nous allons voir comment ajouter une recette de potion !

Pré-requis

Vous devez posséder un mod fonctionnel, référez-vous au tutoriel suivant Créer la base son mod

Code

La classe principale

Dans la fonction init(FMLInitializationEvent) de votre classe principale, nous allons enregistrer la recette :

@EventHandler
public void init(FMLInitializationEvent event)
{
    //A la suite
    BrewingRecipeRegistry.addRecipe(input, ingredient, output);
}

Ici les variables input, ingredient et output correspondent à des ItemStacks, dans une recette de potion classique l’input correspond aux potions que l’on
met dans les 3 slots à potion, l’ingredient correspond à … l’ingrédient ,une verrue du nether (nether wart) par exemple. Et l’output est la potion qui
va remplacer l’ancienne.
L’input doit être un objet qui possède une taille de stack maximale égale à 1, sinon le jeu va crash.
L’ingredient peut être n’importe quel objet du jeu.
L’output peut être n’importe quel objet du jeu, cependant il est conseillé de respecter les mêmes contraintes que pour l’input.

Dans le code donné ci-dessus il faut remplacer les variables par les ItemStacks correspondants.

Dans mon cas je vais créer une potion qui, alimentée par une pomme, me donnera un lit :

BrewingRecipeRegistry.addRecipe(new ItemStack(Items.POTIONITEM), new ItemStack(Items.APPLE), new ItemStack(Items.BED));

La même fonction existe mais prenant cette fois comme ingredient une chaine de charactère correspondant au nom associé à l’item dans OreDictionnary (si vous
ne connaissez pas OreDictionnary, utilisez la première version de la fonction)

BrewingRecipeRegistry.addRecipe(new ItemStack(Items.POTIONITEM), "egg", new ItemStack(Items.BED));

Dans le dernier des cas vous pouvez créer une classe qui implémentera l’interface IBrewingRecipe, puis ajouter la recette grâce à :

BrewingRecipeRegistry.addRecipe(new VotreClasseImplementantIBrewingRecipe());

Résultat

Il suffit de placer des fioles d’eau dans les slots de potion, mettre une pomme en ingrédient, alimenter le tout avec de la poudre de blaze, attendre, et vous obtenez des lits.

brewingProcessing.PNG
brewingFinished.PNG

Voir le commit sur GitHub