• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Un item mangeable

    Les items
    1.6.x
    11
    45
    20026
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MrCupCakeMonster
      MrCupCakeMonster last edited by robin4002

      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

      Mes tutos :

      >! Un item mangeable
      [url=http://www.minecraftforgefranc…

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        Bon tutoriel, je valide et j’ajoute au menu 🙂

        1 Reply Last reply Reply Quote 0
        • MrCupCakeMonster
          MrCupCakeMonster last edited by

          Merci 🙂

          Mes tutos :

          >! Un item mangeable
          [url=http://www.minecraftforgefranc…

          1 Reply Last reply Reply Quote 0
          • Minecraftienne
            Minecraftienne last edited by

            Salut,

            Quand tu dis " Si vous voulez que votre item puisse se boire, rajoutez : (…) return EnumAction.eat; ", faut pas plutôt remplacer par return EnumAction.drink; ?

            Et tu pourrais rajouter la méthode pour garder le récipient? Je crois que c’est celle-ci :

            public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
            {
            super.onEaten(par1ItemStack, par2World, par3EntityPlayer);
            return new ItemStack(bowlEmpty)
            }
            

            (d’ailleurs j’ai un petit problème avec cette méthode, impossible de remplacer bowlEmpty par un objet que j’ai moi-même créer sans avoir une erreur)

            1 Reply Last reply Reply Quote 0
            • elias54
              elias54 Administrateurs last edited by

              @‘Minecraftienne’:

              public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
              {
              super.onEaten(par1ItemStack, par2World, par3EntityPlayer);
              return new ItemStack(bowlEmpty)
              }
              

              (d’ailleurs j’ai un petit problème avec cette méthode, impossible de remplacer bowlEmpty par un objet que j’ai moi-même créer sans avoir une erreur)

              Hm… ça te mets quoi exactement comme erreur ?

              Mon site | GitHub

              1 Reply Last reply Reply Quote 0
              • Minecraftienne
                Minecraftienne last edited by

                Si je fais : return new ItemStack(ChopeDeBiereVide);
                => ChopeDeBiereVide cannot be resolved to a variable

                Mais je vois pas pourquoi le bol vide est une variable 0_o Faut que je rajoute une méthode dans la classe de mon objet pour que les objets puissent s’empiler non?

                1 Reply Last reply Reply Quote 0
                • MrCupCakeMonster
                  MrCupCakeMonster last edited by

                  Tu as raison minecraftienne, j’ai changé par “drink”, et pour récupérer le bol, il faut ajouter ceci :

                  public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
                  {
                  super.onEaten(par1ItemStack, par2World, par3EntityPlayer);
                  return new ItemStack(taClassPrincipale.taChopeDeBiereVide);
                  }
                  

                  Et remplace :
                  taClassPrincipale par tu sais quoi ^^ (ta class principale) , et taChopeDeBiereVide par ton item qui sera donné après avoir bût (surement) ta bière 🙂

                  Mes tutos :

                  >! Un item mangeable
                  [url=http://www.minecraftforgefranc…

                  1 Reply Last reply Reply Quote 0
                  • Minecraftienne
                    Minecraftienne last edited by

                    Merci ça fonctionne 😉

                    1 Reply Last reply Reply Quote 0
                    • MrCupCakeMonster
                      MrCupCakeMonster last edited by

                      Derien 🙂

                      Mes tutos :

                      >! Un item mangeable
                      [url=http://www.minecraftforgefranc…

                      1 Reply Last reply Reply Quote 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                        @‘Minecraftienne’:

                        Mais je vois pas pourquoi le bol vide est une variable 0_o Faut que je rajoute une méthode dans la classe de mon objet pour que les objets puissent s’empiler non?

                        La classe de ton Item est extends ItemFood et ItemFood est extends Item, comme les items vanilles sont déclarés dans Item.java, bowlEmpty est valide, tout comme this.bowlEmpty l’est aussi.
                        Donc pour les items de ton mod il faut bien mettre la classe principale devant.

                        Voila pour l’explication 😉

                        Ha, en passant :
                        https://github.com/MCNanotech/ModTutoriel/commit/1515e305c61b6f8c26cf3b1b32d9c3bc0e9d3887
                        J’ai aussi modifier un peu le tutoriel, j’ai ajouté l’enregistrement de l’item (qui reste optionnel), la texture, le nom et j’ai enlevé les importations inutiles dans la classe de l’item

                        1 Reply Last reply Reply Quote 1
                        • A
                          Artnerm last edited by

                          Très bon tutoriel, ça marche à merveille 😉 J’aimerais savoir comment faire pour pouvoir manger l’item sans que notre barre de faim sois descendu, comme pour les pommes d’or par exemple (j’ai chercher et j’ai pas trouver :/) merci de vos réponses ! 🙂

                          1 Reply Last reply Reply Quote 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                            public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                            {
                            player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
                            return stack;
                            }
                            

                            Je crois que c’est ça.

                            1 Reply Last reply Reply Quote 0
                            • A
                              Artnerm last edited by

                              Merci pour la réponse robin, ça marche nickel ! Un tuto sur les générations bientôt ? 🙂

                              1 Reply Last reply Reply Quote 0
                              • utybo
                                utybo last edited by

                                @‘robin4002’:

                                public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                                {
                                player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
                                return stack;
                                }
                                

                                Je crois que c’est ça.

                                Y’a un autre code laaaaaargement plus simple, si je le retrouve x)

                                Moddeur à la retraite et développeur de trucs en Java.

                                J'aide les gens comme je peux, alors si mon message v…

                                1 Reply Last reply Reply Quote 0
                                • Sugarshy
                                  Sugarshy last edited by

                                  Impossible pour moi de mettre le setpotion effect…
                                  Suis-je le seul à avoir se problème ?

                                  1 Reply Last reply Reply Quote 0
                                  • robin4002
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                    Quel erreur eclipse te donne ?

                                    1 Reply Last reply Reply Quote 0
                                    • Sugarshy
                                      Sugarshy last edited by

                                      @‘robin4002’:

                                      Quel erreur eclipse te donne ?

                                      Aucune erreur, mais quand je créé mon item ainsi : ```java
                                      StrangeCupcake = new ItemStrangeCupcake(6047, 7, 1, false).setUnlocalizedName(“StrangeCupcake”).setTextureName(“landcast:strangecupcake”).setCreativeTab(CreativeTabs.tabFood).setPotionEffect(Potion.confusion.id, 30, 0, 1.0F);

                                      Il me souligne le .setpotioneffect en disant qu'il n'existe pas…
                                      1 Reply Last reply Reply Quote 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                        Pourtant cette fonction existe bien dans ItemFood, vérifie que ItemStrangeCupcake est extends ItemFood

                                        1 Reply Last reply Reply Quote 0
                                        • utybo
                                          utybo last edited by

                                          Le set potion effect est aussi buggé chez moi, j’utilise un autre code plus simple (onEaten ou un autre truc dans le genre)

                                          Moddeur à la retraite et développeur de trucs en Java.

                                          J'aide les gens comme je peux, alors si mon message v…

                                          1 Reply Last reply Reply Quote 0
                                          • Sugarshy
                                            Sugarshy last edited by

                                            @‘robin4002’:

                                            Pourtant cette fonction existe bien dans ItemFood, vérifie que ItemStrangeCupcake est extends ItemFood

                                            Vérifié, il est bien en extends ItemFood…

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB