MFF

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

    IItemRender

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 3 Publieurs 2.0k Vues 1 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Dans handleRenderType tu as mis true pour EQUIPPED mais dans renderItem tu as mis EQUIPPED_FIRST_PERSON.
      Du-coup il appel seulement la fonction renderItem pour le cas EQUIPPED mais il n’y a rien dans ce cas, donc tu n’obtiens aucun rendu.

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

        je penser donc que se code devrait fonctionner mais le rendu est toujours vide :

        public class EwiliteSwordLvloneTechneRender implements IItemRenderer 
        {
        protected modelewilitesword model;
        protected static ResourceLocation texture = new ResourceLocation(ewifaction.MODID, "textures/items/t.png");
        public EwiliteSwordLvloneTechneRender()
        {
        model = new modelewilitesword(); 
        }
        @Override
        public boolean handleRenderType(ItemStack item, ItemRenderType type)
        {
        switch(type)
        {
        case EQUIPPED:
        return true;
        default:
        return false;
        }
        }
        
        @Override
        public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
        {
        return false;
        }
        
        @Override
        public void renderItem(ItemRenderType type, ItemStack item, Object… data) {
        
        switch(type)
        {
        case EQUIPPED:
        {
        
        GL11.glPushMatrix();
        GL11.glRotatef(1F, 0.0F, 0.0F, 1.0F);
                       GL11.glTranslatef(1.0F, 2.0F, 1.5F);
        Minecraft.getMinecraft().renderEngine.bindTexture(texture);
        model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
        GL11.glPopMatrix(); 
        
        }
        default:
        break;
        }
        
        }
        }
        
        1 réponse Dernière réponse Répondre Citer 0
        • T Hors-ligne
          thecraft38
          dernière édition par

          Personne ne sait pourquoi mon rendu est vide ? ( désolé tu double poste )

          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

            Tu peux envoyer la classe de ton modèle ?

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

              Oui la voici :

              
              public class modelewilitesword extends ModelBase
              
              {
              
              public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
              
              {
              
              super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
              
              }
              
              public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
              
              {
              
              super.render(entity, f, f1, f2, f3, f4, f5);
              
              setRotationAngles(f, f1, f2, f3, f4, f5, entity);
              
              }
              
              }
              
              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

                Ton modèle est complètement vide, c’est pour ça que rien ne se rend.

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

                  Que dois je mettre dans mon render pour qu’il ne soit plus vide ?

                  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 tu veux le rendu normal d’un item, c’est ça qu’il te faut : https://www.minecraftforgefrance.fr/showthread.php?tid=556&pid=6186#pid6186
                    (sans le
                    GL11.glScalef(2F, 2F, 2F);
                    ni le glTranslatef et les rotates avant la fonction
                    this.renderItem(living, item, renderPass);
                    si tu veux l’avoir avec une taille normal).

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

                      voila se que j’ai fait :

                      public class EwiliteSwordLvloneTechneRender implements IItemRenderer 
                      {
                      protected modelewilitesword model;
                      protected static ResourceLocation texture = new ResourceLocation(ewifaction.MODID, "textures/items/t.png");
                      public EwiliteSwordLvloneTechneRender()
                      {
                      model = new modelewilitesword(); 
                      }
                      @Override
                      public boolean handleRenderType(ItemStack item, ItemRenderType type)
                      {
                      switch(type)
                      {
                      case EQUIPPED:
                      return true;
                      default:
                      return false;
                      }
                      }
                      @Override
                      public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
                      {
                      return false;
                      }
                      @Override
                      public void renderItem(ItemRenderType type, ItemStack item, Object… data)
                      {
                      switch(type)
                      {
                      case EQUIPPED:
                      {
                      EntityLivingBase living = (EntityLivingBase)data[1];
                      int renderPass = item.getItem().requiresMultipleRenderPasses() ? 1 : 0;
                      
                                  this.renderItem(living, item, renderPass);
                          GL11.glPopMatrix();
                      break;
                      }
                      default:
                      break;
                      }
                      
                      }
                      private void renderItem(EntityLivingBase living, ItemStack item, int renderPass) 
                      {
                      TextureManager texturemanager = FMLClientHandler.instance().getClient().getTextureManager();
                      GL11.glPushMatrix();
                      IIcon icon = living.getItemIcon(item, renderPass);
                      if(icon == null)
                      {
                      GL11.glPopMatrix();
                      return;
                      }
                      Tessellator tessellator = Tessellator.instance;
                      float f = ((IIcon) icon).getMinU();
                      float f1 = ((IIcon) icon).getMaxU();
                      float f2 = ((IIcon) icon).getMinV();
                      float f3 = ((IIcon) icon).getMaxV();
                      float f4 = 0.0F;
                      float f5 = 0.3F;
                      float f6 = 1.5F;
                      ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
                      
                      if(item.hasEffect(renderPass))
                      {
                      texturemanager.bindTexture(texture);
                      }
                      }
                      }
                      

                      j’ai bien un rendu mais il s’agit du rendu de base de mon épée pas le nouveau savez-vous pourquoi ?

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

                        Peut être parce que tu ne comprends pas ton code et que tu bind la texture après le rendu au lieu de le faire avant ^^

                        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
                        • T Hors-ligne
                          thecraft38
                          dernière édition par

                          En effet je ne comprend pas vraiment ce code ,j’ai beau chercher, je ne trouve pas comment modifier le code pour corriger le problème.

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

                            voila se que j’ai réussi à faire :

                            public class EwiliteSwordLvloneTechneRender implements IItemRenderer
                            {
                                private static final ResourceLocation texture = new ResourceLocation(ewifaction.MODID, "textures/items/t.png");
                            
                            @Override
                            public boolean handleRenderType(ItemStack item, ItemRenderType type)
                            {
                            switch(type)
                            {
                            case EQUIPPED:
                            return true;
                            default:
                            return false;
                            }
                            }
                            
                            @Override
                            public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
                            {
                            return false;
                            }
                            
                            @Override
                            public void renderItem(ItemRenderType type, ItemStack item, Object… data)
                            {
                            switch(type)
                            {
                            case EQUIPPED:
                            {
                            EntityLivingBase living = (EntityLivingBase)data[1];
                            int renderPass = item.getItem().requiresMultipleRenderPasses() ? 1 : 0;
                            
                            GL11.glPushMatrix();
                            
                                        this.renderItem(living, item, renderPass);
                                GL11.glPopMatrix();
                            break;
                            }
                            default:
                            break;
                            }
                            
                            }
                            
                            public void renderItem(EntityLivingBase living, ItemStack stack, int pass)
                            {
                            TextureManager texturemanager = FMLClientHandler.instance().getClient().getTextureManager();
                            GL11.glPushMatrix();
                            IIcon icon = living.getItemIcon(stack, pass);
                            if(icon == null)
                            {
                            GL11.glPopMatrix();
                            return;
                            }
                            texturemanager.bindTexture(texture);
                            Tessellator tessellator = Tessellator.instance;
                            float f = icon.getMinU();
                            float f1 = icon.getMaxU();
                            float f2 = icon.getMinV();
                            float f3 = icon.getMaxV();
                            float f4 = 0.0F;
                            float f5 = 0.3F;
                            GL11.glEnable(GL12.GL_RESCALE_NORMAL);
                            float f6 = 1.5F;
                            
                            ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
                            
                            if(stack.hasEffect(pass))
                            {
                            GL11.glDepthFunc(GL11.GL_EQUAL);
                            GL11.glDisable(GL11.GL_LIGHTING);
                            texturemanager.bindTexture(texture);
                            GL11.glEnable(GL11.GL_BLEND);
                            GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
                            float f7 = 0.76F;
                            GL11.glColor4f(0.5F * f7, 0.25F * f7, 0.8F * f7, 1.0F);
                            GL11.glMatrixMode(GL11.GL_TEXTURE);
                            GL11.glPushMatrix();
                            float f8 = 0.125F;
                            GL11.glScalef(f8, f8, f8);
                            float f9 = (float)(Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F;
                            GL11.glTranslatef(f9, 0.0F, 0.0F);
                            GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F);
                            ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F);
                            GL11.glPopMatrix();
                            GL11.glPushMatrix();
                            GL11.glScalef(f8, f8, f8);
                            f9 = (float)(Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F;
                            GL11.glTranslatef(-f9, 0.0F, 0.0F);
                            GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F);
                            ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F);
                            GL11.glPopMatrix();
                            GL11.glMatrixMode(GL11.GL_MODELVIEW);
                            GL11.glDisable(GL11.GL_BLEND);
                            GL11.glEnable(GL11.GL_LIGHTING);
                            GL11.glDepthFunc(GL11.GL_LEQUAL);
                            }
                            
                            GL11.glDisable(GL12.GL_RESCALE_NORMAL);
                            GL11.glPopMatrix();
                            }
                            }
                            

                            Quand je met un chemin de texture invalide j’obtient un carré noir comme prévue mais quand je met un chemin valide le rendu deviens vide.

                            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