• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Créer un item basique

    Les items
    1.7.x
    37
    243
    70321
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • kevin_68
      kevin_68 Moddeurs confirmés dernière édition par robin4002

      youtubeCe tutoriel est également disponible en vidéo.

      Sommaire

      • Introduction
      • Pré-requis
      • Code
        • Classe de l’item
        • Classe principale
        • Appliquer une texture
        • Méthodes utiles
      • Résultat
      • Crédits

      Introduction

      Dans ce tutoriel, nous allons créer un item très basique, puis je vais donner quelques méthodes qui peuvent être utiles.

      Pré-requis

      • Créer la base de votre mod

      Code

      Classe de l’item :

      Vous pouvez commencer par créer une nouvelle classe qu’il faut étendre d’Item:

      public class ItemTutoriel extends Item
      {
      
      }
      

      Vous n’avez plus besoin d’ajouter un constructeur en 1.7. Voila, votre classe est terminée, pour l’instant, car vous pourrez lui ajouter des fonctions.

      Classe principale :

      Après avoir fait notre classe d’item, il faut maintenant enregistrer votre item.
      En haut de la classe vous aller déclarer une nouvelle variable Item:

      public static Item itemTutoriel;
      

      Puis, dans la méthode PreInit de votre classe principale (celle avec FMLPreInitializationEvent en argument) vous aller déclarer la variable comme ItemTutoriel:

      itemTutoriel = new ItemTutoriel();
      

      Nous allons lui donner un nom en ajoutant setUnlocalizedName(“nom”) à la déclaration:

      itemTutoriel = new ItemTutoriel().setUnlocalizedName("tutoriel");
      

      Attention, ceci n’est que le nom non localisé donc, en jeu il sera nommé item.tutoriel.name. Pour localiser le nom (donc avec traduction) allez dans forge/src/main/resources/assets/votre_modid/lang/ et ouvrez les fichiers de lang précédemment créés. Ajoutez :

      item.le nom non localisé.name=Nom Localisé
      

      Ce qui donnera pour le en_US.lang :

      item.tutoriel.name=Item Tutorial
      

      et pour le fr_FR.lang :

      item.tutoriel.name=Item Tutoriel
      

      Après ceci, nous allons enregistrer l’item en ajoutant la méthode suivante:

      GameRegistry.registerItem(itemTutoriel, "item_tutoriel")
      

      itemTutoriel correspond à la variable déclaré précédemment.
      “item_tutoriel” correspond au nom donné à l’item dans le “game data”. Ce nom sera utilisé comme référence en jeu (pour le /give, etc …)

      Nous en avons terminé avec la classe principale.

      Appliquer une texture

      Pour appliquer une texture à un item, il existe deux façons de faire, une simple mais limité et une autre plus longue mais complète.

      Simple: il vous suffit de rajouter .setTextureName(ModTutoriel.MODID + “:nomdelatexture”) dans la déclaration de l’item, dans la classe principale.
      Ce qui nous donne:

      itemTutoriel = new ItemTutoriel().setUnlocalizedName("tutoriel").setTextureName(ModTutoriel.MODID + ":itemtutoriel");
      

      Cette méthode étant limité à une seule texture(ce qui est le plus souvent utilisé), il existe une autre façon de faire:
      pour cela, rendez-vous dans la classe de l’Item où vous pouvez ajouter cette méthode qui va enregistrer la texture:

          @Override
          public void registerIcons(IIconRegister iconregister)
          {
              this.itemIcon = iconregister.registerIcon(ModTutoriel.MODID + ":itemtutoriel");
          }
      

      La texture est à mettre dans le dossier assets/modid/textures/items/
      Avec modid à remplacer par l’id du mod.

      Méthodes utiles

      Ajouter votre item à une page de l’inventaire créatif:
      Dans la classe principale ajoutez .setCreativeTab(creativetab) dans la déclaration de l’item (remplacer creativetab par la page souhaitée)

      itemTutoriel = new ItemTutoriel().setUnlocalizedName("itemTutoriel").setTextureName(ModTutoriel.MODID + ":itemtutoriel").setCreativeTab(CreativeTabs.tabMaterials);
      

      Ou dans la classe de l’item, ajouter un constructeur :

      public ItemTutoriel()
      {
          this.setCreativeTab(CreativeTabs.Materials);
      }
      

      Résultat

      0_1529587695902_item_moddé.png

      Github

      Crédits

      Rédaction :

      • kevin_68

      Correction :

      • Superloup10

      Creative Commons
      Ce tutoriel de Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

      retourRetour vers le sommaire des tutoriels


      Mettez à jours vers la dernière version stable (1.8.9 voir même…

      1 réponse Dernière réponse Répondre Citer 0
      • Kali
        Kali dernière édition par

        Merci beaucoup 🙂

        1 réponse Dernière réponse Répondre Citer 0
        • DarkSilver974
          DarkSilver974 dernière édition par

          “Vous n’avez plus besoin d’ajouté un constructeur en 1.7.”
          je pense qu’il s’agit “d’ajouter”… xD
          Désolé kevin pour ce commentaire désagréable 😉

          1 réponse Dernière réponse Répondre Citer 1
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            On va gronder les correcteurs.

            1 réponse Dernière réponse Répondre Citer 0
            • BlackPanda
              BlackPanda dernière édition par

              Bonjour,

              J’ai un problème concernant les textures de mes items. J’aimerais ajouter 5 nouveaux sticks ( bâton vert, bâton rouge etc… ), et pour cela j’ai créer les textures avec le logiciel Paint.net ( transparence activée ).
              J’ai suivi le tutoriel vidéo puis le tutoriel écrit et je n’ais osé utiliser que cette technique là pour mes textures :

              itemTutoriel = new ItemTutoriel().setUnlocalizedName("tutoriel").setTextureName(ModTutoriel.MODID + ":itemtutoriel");
              

              Sinon, voici ma classe principale :

              package fr.blackpandagaming.dragonadventure.common;
              
              import net.minecraft.creativetab.CreativeTabs;
              import net.minecraft.item.Item;
              import cpw.mods.fml.common.Mod;
              import cpw.mods.fml.common.Mod.EventHandler;
              import cpw.mods.fml.common.Mod.Instance;
              import cpw.mods.fml.common.SidedProxy;
              import cpw.mods.fml.common.event.FMLInitializationEvent;
              import cpw.mods.fml.common.event.FMLPostInitializationEvent;
              import cpw.mods.fml.common.event.FMLPreInitializationEvent;
              import cpw.mods.fml.common.registry.GameRegistry;
              import cpw.mods.fml.relauncher.Side;
              import fr.blackpandagaming.dragonadventure.proxy.CommonProxy;
              
              @Mod(modid = DragonAdventure.MODID, name = "Dragon Adventure", version = "1.0.0")
              
              public class DragonAdventure
              {
              public static final String MODID = "dragonadventure";
              @Instance("MODID")
              public static DragonAdventure instance;
              
              @SidedProxy(clientSide = "fr.blackpandagaming.dragonadventure.proxy.ClientProxy", serverSide = "fr.blackpandagaming.dragonadventure.proxy.CommonProxy")
              public static CommonProxy proxy;
              
              public static Item batonVert, batonRouge, batonBleu, batonBlanc, batonNoir;
              
              @EventHandler
              public void preInit(FMLPreInitializationEvent event)
              {
              batonVert = new BatonVert().setUnlocalizedName("batonVert").setTextureName(MODID + ":baton_vert").setCreativeTab(CreativeTabs.tabMaterials);
              batonRouge = new BatonVert().setUnlocalizedName("batonRouge").setTextureName(MODID + ":baton_rouge").setCreativeTab(CreativeTabs.tabMaterials);
              batonBleu = new BatonVert().setUnlocalizedName("batonBleu").setTextureName(MODID + ":baton_bleu").setCreativeTab(CreativeTabs.tabMaterials);
              batonBlanc = new BatonVert().setUnlocalizedName("batonBlanc").setTextureName(MODID + ":baton_blanc").setCreativeTab(CreativeTabs.tabMaterials);
              batonNoir = new BatonVert().setUnlocalizedName("batonNoir").setTextureName(MODID + ":baton_noir").setCreativeTab(CreativeTabs.tabMaterials);
              
              GameRegistry.registerItem(batonVert, "baton_vert");
              GameRegistry.registerItem(batonRouge, "baton_rouge");
              GameRegistry.registerItem(batonBleu, "baton_bleu");
              GameRegistry.registerItem(batonBlanc, "baton_blanc");
              GameRegistry.registerItem(batonNoir, "baton_noir");
              }
              
              @EventHandler
              public void init(FMLInitializationEvent event)
              {
              proxy.registerRender();
              }
              
              @EventHandler
              public void postInit(FMLPostInitializationEvent event)
              {
              
              }
              }
              

              Biensur, j’ai tout suivit à la lettre : mes textures sont en .png et du même nom que ceux que j’ai mis dans ma classe principale.

              Voilà, j’espère que j’ai été clair et qu’il y a une solution a mon problème…

              Cordialement.

              1 réponse Dernière réponse Répondre Citer 0
              • utybo
                utybo dernière édition par

                Remplace MODID par DragonAdventure.MODID
                Et dans ton @Instance, remplace “MODID” par DragonAdventure.MODID
                Tu as bien mis tes textures dans src/main/resources/assets/dragonadventure/textures/items?

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

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

                1 réponse Dernière réponse Répondre Citer 0
                • BlackPanda
                  BlackPanda dernière édition par

                  D’abord, merci de ta réponse rapide !

                  C’est bon, j’ais régler le problème : je n’avait pas mis mon MODID comme nom de dossier dans le dossier assets –'. Bref encore un truc tout bête 😄
                  En tout cas je te remercie de ton aide !

                  Cordialement.

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                    Par contre ça :

                    @Instance("MODID")
                    public static DragonAdventure instance;
                    

                    c’est pas bon. ça devrait être :

                    @Instance("dragonadventure")
                    public static DragonAdventure instance;
                    

                    ou :

                    @Instance(MODID)
                    public static DragonAdventure instance;
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • utybo
                      utybo dernière édition par

                      Je l’avais déjà dis Robin x)

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

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

                      1 réponse Dernière réponse Répondre Citer 1
                      • MrCupCakeMonster
                        MrCupCakeMonster dernière édition par

                        Bon je me remet au code dans s’il y a des erreurs de débutants c’est normal x)

                        Donc j’ai bien suivis le tuto (enfin je crois) mais l’item n’apparaît pas dans Tabs Materials ^^

                        La classe principale :

                        package com.gmail.zzzmaxipzzz.nuclearreinforced.common;
                        
                        import net.minecraft.creativetab.CreativeTabs;
                        import net.minecraft.item.Item;
                        
                        import com.gmail.zzzmaxipzzz.nuclearreinforced.proxy.CommonProxy;
                        import com.gmail.zzzmaxipzzz.nuclearreinforced.item.*;
                        
                        import cpw.mods.fml.common.Mod;
                        import cpw.mods.fml.common.Mod.EventHandler;
                        import cpw.mods.fml.common.Mod.Instance;
                        import cpw.mods.fml.common.SidedProxy;
                        import cpw.mods.fml.common.event.FMLInitializationEvent;
                        import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                        import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                        import cpw.mods.fml.common.registry.GameRegistry;
                        
                        @Mod(modid = "nuclearreinforced", name = "Nuclear Reinforced", version = "Alpha 0.0.0")
                        public class NuclearReinforced {
                        
                        @Instance("nuclearreinforced")
                        public static NuclearReinforced instance;
                        public static final String MODID = "nuclearreinforced";
                        
                        @SidedProxy(clientSide = "com.gmail.zzzmaxipzzz.nuclearreinforced.proxy.ClientProxy", serverSide = "com.gmail.zzzmaxipzzz.nuclearreinforced.proxy.CommonProxy")
                        public static CommonProxy proxy;
                        
                        public static Item nucleariumIngot;
                        
                        @EventHandler
                        public void preInit(FMLPreInitializationEvent event) {
                        
                        nucleariumIngot = new ItemNuclearium()
                        .setUnlocalizedName("nucleariumIngot")
                        .setTextureName(NuclearReinforced.MODID + ":nuclearium_ingot")
                        .setCreativeTab(CreativeTabs.tabMaterials);
                        
                        GameRegistry.registerItem(nucleariumIngot, "nucleariumIngot");
                        }
                        
                        @EventHandler
                        public void Init(FMLInitializationEvent event) {
                        
                        proxy.registerRender();
                        
                        }
                        
                        @EventHandler
                        public void postInit(FMLPostInitializationEvent event) {
                        
                        }
                        
                        }
                        
                        

                        La classe de l’item :

                        package com.gmail.zzzmaxipzzz.nuclearreinforced.item;
                        
                        import net.minecraft.item.Item;
                        
                        public class ItemNuclearium extends Item {
                        
                        }
                        
                        

                        Mes tutos :

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

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                          Pourtant je vois aucun problème o_O
                          Essaye de le give avec /give <ton pseudo=“”>nuclearreinforced:nucleariumIngot</ton>

                          1 réponse Dernière réponse Répondre Citer 0
                          • MrCupCakeMonster
                            MrCupCakeMonster dernière édition par

                            Ah je me disais bien que c’était bizarre !

                            Je vais te passer mes autres class :

                            ClientProxy :

                            package com.gmail.zzzmaxipzzz.nuclearreinforced.proxy;
                            
                            public class ClientProxy extends CommonProxy {
                            
                            @Override
                            public void registerRender() {
                            System.out.println("Méthode côté client");
                            }
                            
                            }
                            
                            

                            CommonProxy :

                            package com.gmail.zzzmaxipzzz.nuclearreinforced.proxy;
                            
                            public class CommonProxy {
                            
                            public void registerRender() {
                            System.out.println("Méthode côté client");
                            }
                            
                            }
                            
                            

                            Et sinon il y a un point d’exclamation rouge sur le projet, quand je lance ça me dit qu’il y a une erreur mais je lance quand même et ça marche sauf que il y a pas mon item

                            EDIT

                            C’est obn ça marche, c’est juste que je sais pas pourquoi mais le chemin src\resources\assets\nuclearreinforced\ ne marche pas et qu’il faut mettre modid à la place de nuclearreinforced.
                            Je vais m’en occuper pour le régler 🙂
                            Merci quand même 😄 !

                            Mes tutos :

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

                            1 réponse Dernière réponse Répondre Citer 0
                            • robin4002
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                              Heu pas normal du tout, refait un setup de forge.
                              Et quand tu as un crash, envoie le crash.

                              1 réponse Dernière réponse Répondre Citer 0
                              • MrCupCakeMonster
                                MrCupCakeMonster dernière édition par

                                Bah ducoup maintenant ça marche donc je dois quand même faire ça ?

                                Mes tutos :

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

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                  Non, si ça fonctionne c’est bon.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • MrCupCakeMonster
                                    MrCupCakeMonster dernière édition par

                                    Ok merci de ton aide 🙂

                                    Mes tutos :

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

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • zeldadu76290
                                      zeldadu76290 dernière édition par

                                      Bonjour a tous je débute en modding et j’aimerait faire quelque petit truc j’ai suivi le tuto je les regarder encore et encore mes mon item n’apparais pas je vous envoi ma classe merci de votre réponse et soyer indulgent svp .

                                      package Primeval.common;
                                      
                                      import net.minecraft.creativetab.CreativeTabs;
                                      import net.minecraft.item.Item;
                                      import Primeval.proxy.CommonProxy;
                                      import cpw.mods.fml.common.Mod;
                                      import cpw.mods.fml.common.Mod.EventHandler;
                                      import cpw.mods.fml.common.Mod.Instance;
                                      import cpw.mods.fml.common.SidedProxy;
                                      import cpw.mods.fml.common.event.FMLInitializationEvent;
                                      import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                                      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                                      import cpw.mods.fml.common.registry.GameRegistry;
                                      
                                      @Mod(modid = Modprimeval.MODID, name ="PrimevalCraftWorld", version = "1.0.0")
                                      
                                      public class Modprimeval
                                      {
                                      public static final String MODID = "Modprimeval";
                                      
                                      @Instance(MODID)
                                      public static Modprimeval instance;
                                      
                                      @SidedProxy(clientSide = "Primeval.proxy.ClientProxy", serverSide = "Primeval.proxy.CommonProxy")
                                      public static CommonProxy proxy;
                                      
                                      public static Item itemDetecteur;
                                      
                                      @EventHandler
                                      
                                      public void preInit(FMLPreInitializationEvent event)
                                      
                                      {
                                      itemDetecteur = new ItemDetecteur().setUnlocalizedName("Detecteur").setTextureName(Modprimeval.MODID + ":itemdetecteur").setCreativeTab(CreativeTabs.tabRedstone);
                                      
                                      GameRegistry.registerItem(itemDetecteur, "item_detecteur");
                                      
                                      }
                                      @EventHandler
                                      
                                      public void init(FMLInitializationEvent event)
                                      
                                      {
                                      
                                      proxy.registerRender();
                                      
                                      }
                                      @EventHandler
                                      
                                      public void postInit(FMLPostInitializationEvent event)
                                      {
                                      
                                      }
                                      }
                                      

                                      Travail sur le Mod PrimevalCraftWorld  :)

                                      Si tu est Interresser contact moi  :D

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                        public static final String MODID = “Modprimeval”;
                                        Enlève la majuscule :
                                        public static final String MODID = “modprimeval”;
                                        Ensuite en jeu :
                                        /give <ton pseudo=“”>modprimeval:item_detecteur</ton>

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • zeldadu76290
                                          zeldadu76290 dernière édition par

                                          Re bonjour j’ai bien fait comme vous disiez j’ai enlever la majuscule ensuite j’ai fait la commande /give zeldadu76290 modprimeval:item_detecteur mais minecraft dit que l’Id n’existe pas
                                          mes merci de m’avoir répondu .

                                          Travail sur le Mod PrimevalCraftWorld  :)

                                          Si tu est Interresser contact moi  :D

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • robin4002
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                            Étrange, tu peux envoyer les logs du jeu ?

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 12
                                            • 13
                                            • 1 / 13
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB