Créer un kit d'outils



  • Sommaire

    Introduction

    Bonjour à tous ! On se retrouve aujourd'hui pour un petit tutoriel pour apprendre a créer votre propre kit d'outils en 1.11

    Pré-requis

    Code

    La classe items:

    Nous allons commencer par nous occuper de notre classe items (vous devez l'avoir déjà créer si vous avez suivi le tutoriel de Pchom)
    La ou vous déclarer vos item ajouter la ligne suivante :

        public static ToolMaterial toolnomdevotrematériau = EnumHelper.addToolMaterial("toolnomdevotrematériau", 1, 199, 8.0F, 4.0F, 18);
    

    Nous allons décortiquer un peu le code entre parenthèse ensemble
    "toolnomdevotrematériau" : cela va être initialiser votre matériel on va se resservir de ce nom plus tard dans le code
    Maintenant décortiquons un peu les nombres mis en paramètre
    1: c'est le niveau de minage de votre pioche 0 mine comme une pioche en bois 1 comme pioche en pierre 2 comme pioche en fer et 3 comme pioche en diamant
    199: c'est la durabilité de nos outils -1 mes outils auront donc une durabilité de 200 ici
    Ensuite 8.0F : c'est la vitesse de récolte de vos outils plus ce nombre sera élevé plus vos pioche et vos hache minerons rapidement !
    Le 4.0F : c'est les dégâts en demi-coeurs que vont infligés les outils, pour l'épée 2 coeurs de dégâts seront ajouter à cette valeur
    Et pour finir le dernier nombre 18: c'est l'enchantabilité de vos outils, plus ce nombre sera élevé plus vous aurez de chance d'obtenir de bons enchantements sur vos outils
    Ensuite nous allons déclarer les différents outils de notre kit ajouter cette ligne sous la déclaration de votre matériau vous devez l'écrire 5 fois en ajoutant tour à tour la pioche, l'épée, la hache, la houe et la pelle (si vous ne voulez pas l'intégralité des outils vous n'êtes pas obliger de tous les ajouter)

        public static final Item VOTREMATERIAU_VOTREOUTILS = new VotrematériauVotreoutils(toolvotrematériau).setRegistryName("votremateriau_votreoutils").setUnlocalizedName("votremateriau_votre"); 
    
    

    pour moi cela donne ceci

        public static final Item COPPER_SWORD = new CopperSword(toolcopper).setRegistryName("copper_sword").setUnlocalizedName("copper_sword"); 
        public static final Item COPPER_PICKAXE = new CopperPickaxe(toolcopper).setRegistryName("copper_pickaxe").setUnlocalizedName("copper_pickaxe"); 
        public static final Item COPPER_HOE = new CopperHoe(toolcopper).setRegistryName("copper_hoe").setUnlocalizedName("copper_hoe"); 
        public static final Item COPPER_SHOVEL = new CopperShovel(toolcopper).setRegistryName("copper_shovel").setUnlocalizedName("copper_shovel"); 
        public static final Item COPPER_AXE = new CopperShovel(toolcopper).setRegistryName("copper_axe").setUnlocalizedName("copper_axe");
    

    (vous aller avoir une erreur sur le nom des classes c'est normal nous allons créer les classe plus tard)

    Maintenant nous allons enregistrer les model de nos cinq outils avec la fonction RegisterModel je vous met un exemple si vous avez oublié comment faire

    registerModel(COPPER_SWORD, 0);
    

    maintenant nous allons enregistrer leurs texture inventaire sous la ligne ModLoader.setcustomLoaderModelRessourceLocation vous allez ajouter la ligne suivante pour chacun de vos outils

        ModelLoader.setCustomModelResourceLocation(VOTREMATERIAU_VOTREOUTIL, 0, new ModelResourceLocation(ModSimpleores.MODID + ":votremateriau_votreoutil", "inventory"));
    
    

    pour moi ça donne

        ModelLoader.setCustomModelResourceLocation(COPPER_SWORD, 0, new ModelResourceLocation(ModSimpleores.MODID + ":copper_sword", "inventory"));
        ModelLoader.setCustomModelResourceLocation(COPPER_PICKAXE, 0, new ModelResourceLocation(ModSimpleores.MODID + ":copper_pickaxe", "inventory"));
        ModelLoader.setCustomModelResourceLocation(COPPER_HOE, 0, new ModelResourceLocation(ModSimpleores.MODID + ":copper_hoe", "inventory"));
        ModelLoader.setCustomModelResourceLocation(COPPER_SHOVEL, 0, new ModelResourceLocation(ModSimpleores.MODID + ":copper_shovel", "inventory"));
        ModelLoader.setCustomModelResourceLocation(COPPER_AXE, 0, new ModelResourceLocation(ModSimpleores.MODID + ":copper_axe", "inventory"));
    

    Ensuite enregistrer vos items dans votre classe RegisterHandler
    Nous en avons fini avec notre classe item passons maintenant aux classes de nos items

    La classe de l'item:

    Vous allez créer vos 5 classe avec l'héritage ItemVotreoutil par exemple

    public class CopperAxe extends ItemAxe{
    

    Faites juste attention pour la pelle il faut mettre extends ItemSpade et non extends ItemShovel

    Dans chacune des classes faites les import nécessaire et ajouter le constructeur suivant

        public NomdeVotreClasse(ToolMaterial material)
        {
            super(material);
        }
    

    Si vous voulez uniquement créer des kits d'outils basique vous pouvez utiliser les mêmes classes outils pour tous vos kits d'outils.
    Maintenant passons aux textures in-game

    Les textures et les fichiers jsons :

    Tout d'abord placer votre textures et créer vos jsons comme si vous vouliez enregistrer un item basique.
    Il faut juste modifier le contenu des json en y mettant ceci

    {
        "parent": "item/handheld",
        "textures": {
            "layer0": "modid:items/votremateriau_voteoutils"
        }
    }
    

    Cela permet d'avoir un bon visuel in-game des outils dans les deux mains

    Résultat

    Et voici le résultat ! Si vous avez des idées pour le bonus n'hésitez pas a les poster en commentaire 😉

    Crédits

    Rédaction : Aypristyle

    Inspiration : Créer un kit d'outils robin2002


    Ce tutoriel de Aypristyle publié sur 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

    Retour vers le sommaire des tutoriels


  • Rédacteurs

    Salut aypristyle, désolé je ne pas t'avoir répondu avant, j'avais zappé. Ton tutoriel est effectivement beaucoup mieux, il reste quelques trucs à corriger (balise ancre à corriger, fautes d'orthographe, etc …) mais dont les correcteurs se feront un plaisir de s'occuper. Il faudrait cependant que tu indiques à quoi correspondent les valeurs que tu mets en paramètre de ton matériau (199, 8.0F, 4.0F, 18).



  • Merci BrokenSwing j'ai ajouté ce que tu m'a demandé 😉


  • Rédacteurs

    Corrige les ancres (enlève la partie bonus du sommaire et remet l'ancre correcte vers le résultat)



  • C'est bon j'ai rectifiée les ancres 😉
    Merci BrokenSwing pour ton aide !