• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved IItemRender

    1.7.x
    1.7.10
    3
    13
    1600
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      thecraft38 last edited by

      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 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        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 Reply Last reply Reply Quote 0
        • T
          thecraft38 last edited by

          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 Reply Last reply Reply Quote 0
          • T
            thecraft38 last edited by

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

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

              Tu peux envoyer la classe de ton modèle ?

              1 Reply Last reply Reply Quote 0
              • T
                thecraft38 last edited by

                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 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

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

                  1 Reply Last reply Reply Quote 0
                  • T
                    thecraft38 last edited by

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

                    1 Reply Last reply Reply Quote 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                      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 Reply Last reply Reply Quote 0
                      • T
                        thecraft38 last edited by

                        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 Reply Last reply Reply Quote 0
                        • AymericRed
                          AymericRed last edited by

                          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 Reply Last reply Reply Quote 0
                          • T
                            thecraft38 last edited by

                            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 Reply Last reply Reply Quote 0
                            • T
                              thecraft38 last edited by

                              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 Reply Last reply Reply Quote 0
                              • 1 / 1
                              • First post
                                Last post
                              Design by Woryk
                              Contact / Mentions Légales

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB