• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • 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
69.7k
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 29 nov. 2021, 01:26 24 févr. 2014, 18:55

    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 15 mars 2014, 17:29

      Merci beaucoup 🙂

      1 réponse Dernière réponse Répondre Citer 0
      • DarkSilver974
        DarkSilver974 dernière édition par 26 mai 2014, 16:33

        “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 26 mai 2014, 16:37

          On va gronder les correcteurs.

          1 réponse Dernière réponse Répondre Citer 0
          • BlackPanda
            BlackPanda dernière édition par 31 mai 2014, 20:48

            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 31 mai 2014, 21:05

              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 31 mai 2014, 22:37

                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 1 juin 2014, 09:19

                  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 1 juin 2014, 09:58

                    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 26 juil. 2014, 10:15

                      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 26 juil. 2014, 10:46

                        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 26 juil. 2014, 11:38

                          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 26 juil. 2014, 12:33

                            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 26 juil. 2014, 12:41

                              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 26 juil. 2014, 13:02

                                Non, si ça fonctionne c’est bon.

                                1 réponse Dernière réponse Répondre Citer 0
                                • MrCupCakeMonster
                                  MrCupCakeMonster dernière édition par 26 juil. 2014, 14:32

                                  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 11 août 2014, 16:29

                                    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 11 août 2014, 16:36

                                      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 11 août 2014, 17:05

                                        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 11 août 2014, 17:19

                                          É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
                                          1 sur 243
                                          • Premier message
                                            1/243
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB