30 juil. 2013, 21:37

Salut !
Je fais un tutoriel sur comment créer un item qui se mange !

Crée votre item

Commencez par déclarer votre item :

public static Item TutorialEgg;

Sans oublier d’importer “Item.java”
Ajoutez ensuite dans la fonction “PreInit” :

TutorialEgg = new ItemTutorialEgg(ID, Gigot, Saturation, Nourriture loup).setUnlocalizedName("TutorialEgg").setTextureName("modtutoriel:ChocolateEgg");

ID = L’id de votre Item(int)
Gigot = le nombre de demi-gigot qui seront régénérés (int 5 par exemple),
Saturation = la saturation de votre nourriture (Float, 1.5F par exemple),
Nourriture loup = Si la nourriture est pour les loups (boolean, false = non et true = oui)

ItemFoodTuto est souligné, car il faut créer cette classe, dans la seconde partie du tuto 😄 !

Optionnel, enregistrez l’item :

GameRegistry.registerItem(TutorialEgg, "TutorialEgg", "ModTutoriel");

Pour la texture et le nom, le principe est le même que pour un item basique.

La classe de l’item

Créez la classe ItemFoodTuto, et mettez ce code dedans :

package tutoriel.common;

import net.minecraft.item.ItemFood;

public class ItemTutorialEgg extends ItemFood
{
    public ItemTutorialEgg(int id, int foodAmount, float saturation, boolean isWolfFood)
    {
        super(id, foodAmount, saturation, isWolfFood);
    }
}

Si vous voulez que votre item puisse se boire, rajoutez :

   public EnumAction getItemUseAction(ItemStack par1ItemStack)
   {
       return EnumAction.drink;
   }

Ajouter un effet à votre item lorsqu’il est mangé

Pour ce faire, ajoutez dans votre item dans le “PreInit” :

.setPotionEffect(Potion.confusion.id, 30, 0, 1.0F)

Potion.confusion.id = Remplacez par Potion.votreEffet.id,
30 = Durée de l’effet
0 = Force (speed 1, speed 2 par exemple)
1.0F = Chance en % d’avoir l’effet (1.0F étant 100%, 0.1F pour avoir 10%)

Attention, cette méthode se trouve dans ItemFood, pour qu’elle fonctionne, utilisez cette syntaxe :

TutorialEgg = (new ItemTutorialEgg(TutorialEggID, 5, 4.5F, false)).setPotionEffect(Potion.regeneration.id, 5, 1, 1.0F)…...

Le setPotionEffect doit être avant le .setUnlocalizedName

Voir sur github

Voila, ce tutoriel est finis !
Laissez un commentaire, aimez mon message !
À plus pour d’autres tutos 😄

Questions/Réponses

Q : Comme rendre l’item mangeable même quand la barre de faim est pleine ?
R : De la même façon que pour setPotionEffect, ajoutez .setAlwaysEdible() dans la déclaration de l’item avant le .setUnlocalizedName