• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu IItemRender

    1.7.x
    1.7.10
    3
    13
    1662
    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.
    • T
      thecraft38 dernière édition par

      Voila dans mon mod se trouve un système de tiers pour les épées et donc dans la texture ont voit la tiers. Donc pour que les adversaires ne sachent pas qu’elle est le tiers de l’épée j’ai voulu mettre un autre rendu mais la texture ne s’affiche pas :

      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_FIRST_PERSON:
      {
      
      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;
      }
      
      }
      }
      
      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);
      }
      }
      

      et le proxy :

      public class clientproxy extends commonproxy 
      {
      public void registerRender()
      {
      RenderingRegistry.registerEntityRenderingHandler(EntityObsidianBoat.class, new RenderObsidianBoat());
      
      MinecraftForgeClient.registerItemRenderer(ewifaction.ewiliteswordlvlone, new EwiliteSwordLvloneTechneRender());
      }
      }
      

      Mais le problème est qu’un f5 la main apparaît vide 
      Merci d’avance pour votre aide, bonne soirée/journée.

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        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
          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
            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
            • robin4002
              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
                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
                • robin4002
                  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
                    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
                    • robin4002
                      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
                        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
                        • AymericRed
                          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
                            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
                              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
                              Contact / Mentions Légales

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB