MFF

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

    Render Models

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    18 Messages 6 Publieurs 3.7k Vues 1 Abonné
    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.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      Il me semble pas que le système de rendu des armures ai changé en 1.8, mais regardes les classes de Minecraft pour voir comment c’est géré

      Site web contenant mes scripts : http://SCAREXgaming.github.io

      Pas de demandes de support par MP ni par skype SVP.
      Je n'accepte sur skype que l…

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

        Moi aussi je n’est pas vu de changement dans le code du rendu mais je ne comprend pas pourquoi les layers ne sont pas reconnus.
        Voici mon code au cas où j’aurais fait une boulette.

        
        package checconio.test.tuto.init;
        
        import net.minecraft.entity.Entity;
        import net.minecraft.item.ItemArmor;
        import net.minecraft.item.ItemStack;
        import checconio.test.tuto.Reference;
        
        public class ItemTestArmor extends ItemArmor
        {
        
           public ItemTestArmor(ArmorMaterial material, int armorType)
           {
               super(material, 0, armorType);
           }
        
           public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
           {
               if(stack.getItem() == ItemMod.test_armor3)
               {
                   return Reference.MOD_ID + "textures/models/armor/test_layer_2.png";
               }
        
               else if(stack.getItem() == ItemMod.test_armor2 || stack.getItem() == ItemMod.test_armor || stack.getItem() == ItemMod.test_armor4)
                   return Reference.MOD_ID + "textures/models/armor/test_layer_1.png";
        
               return null;
           }    
        }
        
        

        Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

          Salut,
          Je ne me suis pas encore intérressé aux armures en 1.8, tu peux montrer un screen du problème et le détailler ?

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

            @‘robin4002’:

            Salut,
            Je ne me suis pas encore intérressé aux armures en 1.8, tu peux montrer un screen du problème et le détailler ?

            Je pense que la méthode getArmorTexture a changé de nom. Je n’ai jamais codé en 1.8 dont je ne peux pas te l’assurer.

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

              Alors voila mon armure est créer correctement:

              Mais n’apparais pas sur le joueur:

              Voici le code d’erreur de la console.

              
              [23:14:59] [Client thread/ERROR]: Couldn't render entity
              java.lang.NullPointerException
                  at net.minecraft.client.renderer.entity.layers.LayerArmorBase.getArmorResource(LayerArmorBase.java:179) ~[LayerArmorBase.class:?]
                  at net.minecraft.client.renderer.entity.layers.LayerArmorBase.func_177182_a(LayerArmorBase.java:62) ~[LayerArmorBase.class:?]
                  at net.minecraft.client.renderer.entity.layers.LayerArmorBase.doRenderLayer(LayerArmorBase.java:38) ~[LayerArmorBase.class:?]
                  at net.minecraft.client.renderer.entity.RendererLivingEntity.func_177093_a(RendererLivingEntity.java:480) ~[RendererLivingEntity.class:?]
                  at net.minecraft.client.renderer.entity.RendererLivingEntity.doRender(RendererLivingEntity.java:190) [RendererLivingEntity.class:?]
                  at net.minecraft.client.renderer.entity.RenderPlayer.func_180596_a(RenderPlayer.java:71) [RenderPlayer.class:?]
                  at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java:275) [RenderPlayer.class:?]
                  at net.minecraft.client.renderer.entity.RenderManager.doRenderEntity(RenderManager.java:377) [RenderManager.class:?]
                  at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:357) [RenderManager.class:?]
                  at net.minecraft.client.gui.inventory.GuiInventory.drawEntityOnScreen(GuiInventory.java:123) [GuiInventory.class:?]
                  at net.minecraft.client.gui.inventory.GuiContainerCreative.drawGuiContainerBackgroundLayer(GuiContainerCreative.java:827) [GuiContainerCreative.class:?]
                  at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:95) [GuiContainer.class:?]
                  at net.minecraft.client.renderer.InventoryEffectRenderer.drawScreen(InventoryEffectRenderer.java:53) [InventoryEffectRenderer.class:?]
                  at net.minecraft.client.gui.inventory.GuiContainerCreative.drawScreen(GuiContainerCreative.java:659) [GuiContainerCreative.class:?]
                  at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:460) [ForgeHooksClient.class:?]
                  at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1134) [EntityRenderer.class:?]
                  at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1114) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:376) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:117) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
                  at GradleStart.main(Unknown Source) [start/:?]
              
              

              Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

                Tu es sûr que ce n’est pas un problème venant de la texture du layer qui n’est pas adaptée? Sinon elle se pourrait oui que certaine méthodes aient changé de nom.

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

                  Je peux voir la déclaration de ton ArmorMaterial dans ta classe principale ?
                  Aussi je viens de voir qu’il manque le : dans le return de ta fonction getArmorTexture

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

                    Rajoute l’annotation @override au-dessus de ta méthode pour vérifier qu’elle existe, ou fait Alt + shift + s puis “override/implement methods” et choisis la méthode, çà évite de faire des erreurs.

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

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

                      Pour la déclaration de ton matériel d’armure ça ce passe comme ça (avec la déclaration des items) :

                      public static ArmorMaterial enumArmorMaterialViridis = EnumHelper.addArmorMaterial("VIRIDIS", "viridis", 17, new int[] {3, 6, 5, 3}, 9);
                      

                      "

                      (String name, String textureName, int durability, int[] reductionAmounts, int enchantability)
                      

                      "

                      L’armure en diamant ayant ces propriétés :

                      DIAMOND("diamond", 33, new int[]{3, 8, 6, 3}, 10);
                      

                      Puis les items :

                         public static Item viridisHelmet = new ViridisArmor(enumArmorMaterialViridis, 5, 0);
                         public static Item viridisChestplate = new ViridisArmor(enumArmorMaterialViridis, 5, 1);
                         public static Item viridisLeggings = new ViridisArmor(enumArmorMaterialViridis, 5, 2);
                         public static Item viridisBoots = new ViridisArmor(enumArmorMaterialViridis, 5, 3);
                      

                      Et finalement la classe de l’armure ici “ViridisArmor” :

                      public class ViridisArmor extends ItemArmor
                      {
                         public ViridisArmor(ArmorMaterial material, int renderIndex, int armorType)
                         {
                             super(material, renderIndex, armorType);
                         }
                      
                         @Override
                         public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                         {
                             if(slot == 2)
                             {
                                 return Infos.MODID + ":textures/models/armor/viridis_layer_2.png";
                             }
                             return Infos.MODID + ":textures/models/armor/viridis_layer_1.png";
                         }
                      
                         @Override
                         public boolean getIsRepairable(ItemStack input, ItemStack repair)
                         {
                             if(repair.getItem() == Item.getItemFromBlock(EmotionBlocks.viridisCristal))
                             {
                                 return true;
                             }
                             return false;
                         }
                      }
                      

                      Avec la fonction “getIsRepairable” pour que l’armure puisse être réparée via l’enclume (très utile), voilà je pense que ça devrait fonctionner et que tu comprendra facilement le code.

                      Ps: Il y auras peut-être des erreurs dans ce cas préviens moi étant donné que j’utilise maintenant un rendue personnalisée pour mon armure.

                      Ps 2: Je te conseil de reprendre les textures de l’armure en diamant pour designer la tienne.

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

                        @‘SCAREX’:

                        Rajoute l’annotation @override au-dessus de ta méthode pour vérifier qu’elle existe, ou fait Alt + shift + s puis “override/implement methods” et choisis la méthode, çà évite de faire des erreurs.

                        lorsque j’implémente Override il n’y a aucune erreur.

                        Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

                          Implémente ? C’est une annotation, pas une interface

                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                          Pas de demandes de support par MP ni par skype SVP.
                          Je n'accepte sur skype que l…

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

                            @‘EmotionFox’:

                            Pour la déclaration de ton matériel d’armure ça ce passe comme ça (avec la déclaration des items) :

                            public static ArmorMaterial enumArmorMaterialViridis = EnumHelper.addArmorMaterial("VIRIDIS", "viridis", 17, new int[] {3, 6, 5, 3}, 9);
                            

                            "

                            (String name, String textureName, int durability, int[] reductionAmounts, int enchantability)
                            

                            "

                            L’armure en diamant ayant ces propriétés :

                            DIAMOND("diamond", 33, new int[]{3, 8, 6, 3}, 10);
                            

                            Puis les items :

                               public static Item viridisHelmet = new ViridisArmor(enumArmorMaterialViridis, 5, 0);
                               public static Item viridisChestplate = new ViridisArmor(enumArmorMaterialViridis, 5, 1);
                               public static Item viridisLeggings = new ViridisArmor(enumArmorMaterialViridis, 5, 2);
                               public static Item viridisBoots = new ViridisArmor(enumArmorMaterialViridis, 5, 3);
                            

                            Et finalement la classe de l’armure ici “ViridisArmor” :

                            public class ViridisArmor extends ItemArmor
                            {
                               public ViridisArmor(ArmorMaterial material, int renderIndex, int armorType)
                               {
                                   super(material, renderIndex, armorType);
                               }
                            
                               @Override
                               public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
                               {
                                   if(slot == 2)
                                   {
                                       return Infos.MODID + ":textures/models/armor/viridis_layer_2.png";
                                   }
                                   return Infos.MODID + ":textures/models/armor/viridis_layer_1.png";
                               }
                            
                               @Override
                               public boolean getIsRepairable(ItemStack input, ItemStack repair)
                               {
                                   if(repair.getItem() == Item.getItemFromBlock(EmotionBlocks.viridisCristal))
                                   {
                                       return true;
                                   }
                                   return false;
                               }
                            }
                            

                            Avec la fonction “getIsRepairable” pour que l’armure puisse être réparée via l’enclume (très utile), voilà je pense que ça devrait fonctionner et que tu comprendra facilement le code.

                            Ps: Il y auras peut-être des erreurs dans ce cas préviens moi étant donné que j’utilise maintenant un rendue personnalisée pour mon armure.

                            Ps 2: Je te conseil de reprendre les textures de l’armure en diamant pour designer la tienne.

                            Merci en regardant les codes que tu m’a envoyer j’ai trouver mon erreur, dans la ligne correspondant au material l’emplacement où il fallait maitre le nom de la texture j’y avais mit <<null>> voila pourquoi il ne chercher pas les textures.

                            Par contre au moment de la fonction “getIsRepairable” il y a “EmotionBlocks.viridisCristal” il s’agit que quel block ?</null>

                            Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

                              @‘SCAREX’:

                              Implémente ? C’est une annotation, pas une interface

                              A ok ^^ mais j’ai trouver mon problème merci quand même 🙂

                              Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

                                Si c’est résolu mets la balise résolu.

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

                                  Merci à tous 🙂

                                  Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

                                    Il s’agit du bloc qui permet de réparer l’armure, tu peux aussi mettre un item :

                                    @Override
                                    public boolean getIsRepairable(ItemStack input, ItemStack repair)
                                    {
                                    if(repair.getItem() == Items.apple)
                                    {
                                    return true;
                                    }
                                    return false;
                                    }
                                    

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

                                      @‘EmotionFox’:

                                      Il s’agit du bloc qui permet de réparer l’armure, tu peux aussi mettre un item :

                                         @Override
                                         public boolean getIsRepairable(ItemStack input, ItemStack repair)
                                         {
                                             if(repair.getItem() == Items.apple)
                                             {
                                                 return true;
                                             }
                                             return false;
                                         }
                                      

                                      A ok merci

                                      Youtubeur Minecraft: https://www.youtube.com/user/checconio84

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

                                      MINECRAFT FORGE FRANCE © 2024

                                      Powered by NodeBB