1.6.x Un item basique


  • Moddeurs confirmés Rédacteurs Administrateurs

    Après notre premier bloc, nous allons faire notre premier item.

    Dans la classe principale

    Déclarez votre item à la suite de la déclaration des blocs :

    public static Item ItemTutorial;
    

    Tout comme les blocs, vous pouvez en déclarer plusieurs à la suite.

    Dans la partie PreInit, ajoutez ceci :

    ItemTutorial = new ItemTutorial(12000).setUnlocalizedName("ItemTutorial").setTextureName("modtutoriel:ItemTutorial");
    

    12000 correspond à l'id (les id d'item vont de 4096 à 31999, sachez aussi que l'id que vous allez mettre ici n'est pas la même qu'en jeu, en effet 256 est additionné à cette id. Donc en jeu mon id sera 12256, ce 256 à été créer à l'origine pour que les id d'item commence à 256 et donc, que les id d'item ne rentre pas en conflit avec les blocs, mais comme forge modifie le jeu pour avoir 4096 id de bloc, ce n'est plus d'actualité. Il faut donc utiliser un id comprit entre 3840 et 31743)
    setUnlocalizedName défini le nom non localisé et func_111206_d est utilisé pour la texture (une fois de plus, nous reviendrons dessus plus tard)
    Juste en dessous, ajoutez :

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

    Ce code n'est pas obligatoire, il sert uniquement pour l'item Tracker de FML, sans ce code votre item fonctionne quand même.
    ItemTutorial est le nom non localisé, et ModTutoriel mon modid.

    Il vous reste une erreur sur "new ItemTutorial", créez la classe.

    La classe de l'item

    Votre classe ressemble à ceci :

    package tutoriel.common;
    
    public class ItemTutorial
    {
    }
    

    Ajoutez "extends Item" après le nom de la classe, et importez net.minecraft.item.Item
    Vous allez avoir une erreur sur le nom de la classe, passer la souris dessus et faite "add constructor […]"
    Comme je vois l'ai déjà dit, on se retrouve mieux avec des paramètres qui ont un nom qui correspond à quoi il sert, donc remplacez les deux "par1" par "id"
    Ajoutez aussi le code pour la table créative, la classe de votre item devrait ressembler à ça :

    package tutoriel.common;
    
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.item.Item;
    
    public class ItemTutorial extends Item
    {
        public ItemTutorial(int id)
        {
            super(id);
            this.setCreativeTab(CreativeTabs.tabMaterials);
        }
    }
    

    Les ressources de l'item (texture + nom)

    Dans la classe principale, j'ai utilisé cette fonction : setTextureName("modtutoriel:ItemTutorial")
    modtutoriel correspond à mon modid sans aucune majuscule, il ne faut pas en mettre. ItemTutorial est le nom de ma texture

    Pour l'emplacement de la texture, allez dans votre dossier forge/mcp/src/minecraft/assets/<votre modid>/textures/ (voir tutoriel "un bloc basique" si vous ne l'avez pas encore)
    Créez un dossier items, puis créez votre fichier .png de 16x16 nommé ItemTutorial, ce qui correspond à la partie après le ":". (vous pouvez aussi faire des textures plus grandes que 16x16, mais elles seront plus lourdes à charger)

    Allez maintenant dans le dossier forge/mcp/src/minecraft/assets/<votre modid>/lang/ et ouvrez votre fichier en_US.lang (voir tutoriel "un bloc basique" si vous ne l'avez pas encore)
    Dans ce fichier, ajoutez item.«le nom non localisé de votre bloc (celui dans setUnlocalizedName(""))».name=«le nom en jeu»
    Par exemple :

    item.ItemTutorial.name=Item Tutorial
    

    /!\ Il ne doit pas avoir d'espace entre le nom non localisé, l'égale, et le nom localisé /!

    Rendu final

    Voir les changements sur Github



  • @robin4002:

    Dans la classe principale, j'ai utilisé cette fonction : .func_111206_d("modtutoriel:ItemTutorial")
    modtutoriel correspond à mon modid sans aucune majuscule, il ne faut pas en mettre. BlockTutorial est le nom de ma texture

    Petit détail mais je préfère le signaler 😛


  • Moddeurs confirmés Rédacteurs Administrateurs

    Mince, copier/coller du tutoriel sur les blocs spoted !



  • x) Très spotted en tout cas très bon tutoriel 🙂


Log in to reply