MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Créer un item simple

    Planifier Épinglé Verrouillé Déplacé Les items
    1.12.x1.11.x
    95 Messages 21 Publieurs 24.0k Vues 10 Watching
    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.
    • LeBossMax2L Hors-ligne
      LeBossMax2
      dernière édition par

      Si je peux donner quelques petits conseilles :
       - Dans la class où tu enregistre tous les items, au lieu de réécrire la fonction d’enregistrement en entier :

      GameRegistry.registerItem(NOM, new ResourceLocation("nom_dans_le_registre"));
      

      (d’ailleurs tu t’es trompé ici, maintenant c’est juste “GameRegistry.register”)

      et en plus d’ ajouter dans la class de l’item le UnlocalizedName (qui pour moi n’a aucune raison d’être différent du RegistryName), j’utilise une fonction qui fait les deux (et qui est plus courte à écrire) :

      private static void registerItem(Item item, String name)
      {
          GameRegistry.register(item.setRegistryName(ModMechaRunicPower.MOD_ID, name).setUnlocalizedName(name));
      }
      

      Tu as ensuite juste à l’appeler dans la fonction registerItems : “registerItem(TUTORIAL, “tutorial_item”);”

      - De la même manière, j’ai une fonction pour enregistrer le model :

      private static void registerRender(Item item)
      {
          ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(ModMechaRunicPower.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
      }
      

      Ps : tu as quand même réussi à m’apprendre quelque chose : je ne connaissais pas “ModelLoader.setCustomModelResourceLocation(…)” je passais directement par “Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(…)”. Je sais pas ce qui est le mieux car techniquement, ta méthode fait à un moment appelle à la fonction que j’utilise.

      Sinon, super tuto, c’est sympa de reprend des tuto en 1.11, il n’y avait plus beaucoup de tuto sur les versions récentes depuis quelques temps.

      1 réponse Dernière réponse Répondre Citer 1
      • PchomP Hors-ligne
        Pchom
        dernière édition par

        Ah mince j’ai pas vu cette erreur, sorry. Va falloir corriger ça.

        Effectivement, cette méthode est plus claire, je vais modifier ça demain, là je suis sur mon téléphone et ce n’est pas pratique.

        Je ne sais pas ce qui est le plus optimisé, et d’ailleurs cette méthode était aussi correcte en 1.8.X.
        Et oui, il y a peu de tutos sur les versions récentes, je vais essayer de mettre à jour ce que je peux ^^ mais il va me falloir du temps :3

        Je corrige tout demain, j’ai peur de faire une bêtise avec mon téléphone.

        Et merci pour ton commentaire, c’est cool de se savoir aidé, parce que j’avoue avoir la pression du rédacteur débutant, je doute beaucoup de ce que j’écris :3

        ÉDIT : Normalement j’ai corrigé la faute avec le registerItem, c’est bon ? Je poste l’optimisation demain, parce que c’est vraiment pas possible sur ce téléphone xD

        > *Si vous ne pouvez expliquer un concept à un enfant de six ans, c’est que vous ne le comprenez pas c…

        1 réponse Dernière réponse Répondre Citer 0
        • Wind_BladeW Hors-ligne
          Wind_Blade
          dernière édition par

          Attention
          A partir de la 1.11.2 le onItemRightClick à  changer
          Pas de grand chose mais maintenant il faut faire

          
          @Override
          public ActionResult <itemstack>onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
              if(!world.isRemote){
                      System.out.println("bonjour " + player.getName());
                      return new ActionResult(EnumActionResult.SUCCESS, new ItemStack(this));
              }
              else{
                      return new ActionResult(EnumActionResult.FAIL, new ItemStack(this));
              }
          }
          
          ```</itemstack>
          1 réponse Dernière réponse Répondre Citer 1
          • BrokenSwingB Hors-ligne
            BrokenSwing Moddeurs confirmés Rédacteurs
            dernière édition par

            Effectivement, et je dirais même que cela date de la 1.9, et ne retourne pas new ItemStack(this), mais le stack donné en paramètres de la fonction :

            
            @Override
            public ActionResult <itemstack>onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand)
            {
            return new ActionResult<itemstack>(EnumActionResult.SUCCESS, itemStack);
            }
            
            

            Pour ce qui est du json des item il me semble que mettre item/generated en parent suffit, pas besoin de remettre le positionnement dans le gui</itemstack></itemstack>

            1 réponse Dernière réponse Répondre Citer 0
            • Wind_BladeW Hors-ligne
              Wind_Blade
              dernière édition par

              Si je fais ce code eclipse me dit que la fonction n’existe pas, je suis allez vérifier sur github mais il font à ma façon

              1 réponse Dernière réponse Répondre Citer 0
              • BrokenSwingB Hors-ligne
                BrokenSwing Moddeurs confirmés Rédacteurs
                dernière édition par

                Effectivement, ce que j’avais donné était la fcontion 1.9, en 1.11 faut renvoyer ça :

                
                public ActionResult <itemstack>onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
                {
                return new ActionResult(EnumActionResult.PASS, playerIn.getHeldItem(handIn));
                }
                
                ```</itemstack>
                1 réponse Dernière réponse Répondre Citer 1
                • PchomP Hors-ligne
                  Pchom
                  dernière édition par

                  Ahem va falloir modifier ça. Pas de soucis, je le ferais quand j’aurais le temps, en ce moment je peux pas trop ^^’

                  > *Si vous ne pouvez expliquer un concept à un enfant de six ans, c’est que vous ne le comprenez pas c…

                  1 réponse Dernière réponse Répondre Citer 0
                  • PchomP Hors-ligne
                    Pchom
                    dernière édition par

                    J’ai mis à jour le tutoriel, c’est bon comme ça ? 😮

                    > *Si vous ne pouvez expliquer un concept à un enfant de six ans, c’est que vous ne le comprenez pas c…

                    1 réponse Dernière réponse Répondre Citer 0
                    • Wind_BladeW Hors-ligne
                      Wind_Blade
                      dernière édition par

                      Attention c’est seulement à partir de la 1.11.2 xD

                      1 réponse Dernière réponse Répondre Citer 0
                      • A Hors-ligne
                        aypristyle
                        dernière édition par

                        Je crois que tu as oublier de parler du code à mettre dans le Common Proxy sans lui le Client Proxy ne fonctionne pas 😉

                        **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                        1 réponse Dernière réponse Répondre Citer 0
                        • A Hors-ligne
                          aypristyle
                          dernière édition par

                          Bonjour est-il possible d’utiliser la même classe Item (nommer ItemTutorial dans le tuto) pour plusieurs items ? 
                          Si oui comment faire ?

                          **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                          1 réponse Dernière réponse Répondre Citer 0
                          • PchomP Hors-ligne
                            Pchom
                            dernière édition par

                            Bonjour,
                            Il me semble que oui, c’est possible. Cependant, je ne garantis rien, je ne l’ai moi-même jamais expérimenté.
                            Quant à comment le faire, il suffit d’utiliser les métadonnées, pour ce faire nous avons à disposition ce tutoriel : https://www.minecraftforgefrance.fr/showthread.php?tid=4383 qui explique comment créer des blocs avec des métadonnées… l’adapter pour les items devrait être faisable.
                            Cependant, il ne faut pas oublier que les items avec metadonnées auront les mêmes attributs, leur seule différence sera leur texture. Vous pourrez bien entendu gérer la classe de l’item pour ajouter d’autres différences, mais si vos deux objets ne sont pas identiques, je ne vois pas l’intérêt d’utiliser deux fois la même classe.

                            Je tiens également à préciser un autre point : les métadonnées sont utilisées par Minecraft sur les objets pour plusieurs choses : la boussole utilise les métadonnées pour afficher la bonne direction et les outils utilisent les métadonnées pour enregistrer la durabilité restante de l’objet.

                            Voici donc mon ultime conseil :
                            N’utilisez les métadonnées sur un objet que pour changer la texture de cet objet et non en créer un second.
                            Pour en créer un second, il vous suffit juste de créer une nouvelle classe et si vous souhaitez créer un item ressemblant à un item déjà existant (ou que vous avez déjà créé), l’héritage existe pour cela. Je ne recommande donc pas l’utilisation de métadonnées pour créer deux items.

                            Pour finir, j’ajouterais que ce que je dis n’est que pure spéculation, je ne suis absolument pas certain de ce que j’avance, je ne l’ai jamais testé et je suis incapable de garantir que cette méthode fonctionnera.

                            > *Si vous ne pouvez expliquer un concept à un enfant de six ans, c’est que vous ne le comprenez pas c…

                            1 réponse Dernière réponse Répondre Citer 0
                            • AymericRedA Hors-ligne
                              AymericRed
                              dernière édition par

                              Alors oui on peut passer par les metadata, et pas seulement pour la texture vu qu’on peut aussi modifier le nom et certains comportements.
                              Mais je crois qu’il voulait dire genre ```java
                              public static Item item1 = new ItemTutorial();
                              public static Item item2 = new ItemTutorial();

                              Et là on utilise la même classe pour deux items, ce qui est totalement possible, à moins que les items aient des effets spécifiques, dans ce cas il vaut mieux avoir plusieurs classes.
                              Je précise que par contre qu'il faudra modifier le "NAME" dans "TutorialItems.setItemName(this, NAME)" dans le constructeur de l'item, en mettant par exemple le NAME en paramètre du constructeur.

                              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                              1 réponse Dernière réponse Répondre Citer 0
                              • PchomP Hors-ligne
                                Pchom
                                dernière édition par

                                Ah, effectivement. J’avais pas pensé à ce point de vue. My bad, again.

                                > *Si vous ne pouvez expliquer un concept à un enfant de six ans, c’est que vous ne le comprenez pas c…

                                1 réponse Dernière réponse Répondre Citer 0
                                • A Hors-ligne
                                  aypristyle
                                  dernière édition par

                                  @‘AymericRed’:

                                  Alors oui on peut passer par les metadata, et pas seulement pour la texture vu qu’on peut aussi modifier le nom et certains comportements.
                                  Mais je crois qu’il voulait dire genre ```java
                                  public static Item item1 = new ItemTutorial();
                                  public static Item item2 = new ItemTutorial();

                                  Et là on utilise la même classe pour deux items, ce qui est totalement possible, à moins que les items aient des effets spécifiques, dans ce cas il vaut mieux avoir plusieurs classes.
                                  Je précise que par contre qu'il faudra modifier le "NAME" dans "TutorialItems.setItemName(this, NAME)" dans le constructeur de l'item, en mettant par exemple le NAME en paramètre du constructeur.
                                  

                                  merci pour ta réponse ! Juste comment puis-je fare pour mettre name en paramètre du constructeur ?

                                  **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • AymericRedA Hors-ligne
                                    AymericRed
                                    dernière édition par

                                    Dans le constructeur de litem, tu mets “String NAME” entre les parenthèses, dans ta classe principale tu auras des erreurs, tu mets “Add arguments to match …” et tu mets entre guillemets le nom de l’item.

                                    Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                    AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                    Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Superloup10S Hors-ligne
                                      Superloup10 Modérateurs
                                      dernière édition par

                                      Il manque un détail très important, tu as oublié de dire où doit aller le Json du modèle.

                                      Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • A Hors-ligne
                                        aypristyle
                                        dernière édition par

                                        Le json doit aller dans le dossier assets/modid/models/items

                                        **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • A Hors-ligne
                                          airokz
                                          dernière édition par

                                          bonjour je suis novice dans le developpement de mod et je ne comprend pas comment creer un deuxieme item qui utilise la meme classe item serai t’il possible d’avoir un tuto ecris ou des explication qui me permettrai de parvenir a mais fin ?

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • DeletedD Hors-ligne
                                            Deleted
                                            dernière édition par

                                            Bonjour,
                                            Il te suffit de faire strictement la même manœuvre que pour ton premier item.
                                            Sur quoi bloques-tu ? As tu des questions sur une partie de ton code, si oui, envoie-le nous qu’on puisse mieux t’éclaircir 😉

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB