MFF

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

    Rendu d'item avec un model techne

    Planifier Épinglé Verrouillé Déplacé Les items
    1.6.x
    137 Messages 24 Publieurs 50.5k 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.
    • EmotionFoxE Hors-ligne
      EmotionFox
      dernière édition par

      P.s : Mes classes :

      L’item simple :

      package mods.emotion.items;
      
      import mods.emotion.creativeTabs.EmotionTab;
      import net.minecraft.item.Item;
      
      public class BaseButterflyNet extends Item
      {
      public BaseButterflyNet()
      {
      this.setCreativeTab(EmotionTab.EmotionCreativeTab2);
      }
      }
      

      Le render :

      package mods.emotion.items;
      
      import mods.emotion.lib.Infos;
      import net.minecraft.client.Minecraft;
      import net.minecraft.entity.Entity;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.ResourceLocation;
      import net.minecraftforge.client.IItemRenderer;
      
      import org.lwjgl.opengl.GL11;
      
      public class RenderNet implements IItemRenderer
      {
      protected ModelNet model;
      protected static final ResourceLocation texture = new ResourceLocation(Infos.MODID + ":textures/entity/net.png");
      
      public RenderNet()
      {
      model = new ModelNet();
      }
      
      @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();
      Minecraft.getMinecraft().renderEngine.bindTexture(texture);
      model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
      GL11.glPopMatrix();
      break;
      }
      default:
      break;
      }
      }
      }
      

      et le model :

      package mods.emotion.items;
      
      import net.minecraft.client.model.ModelBase;
      import net.minecraft.client.model.ModelRenderer;
      import net.minecraft.entity.Entity;
      
      public class ModelNet extends ModelBase
      {
      // fields
      ModelRenderer handle;
      ModelRenderer par1;
      ModelRenderer par2;
      ModelRenderer par3;
      ModelRenderer par4;
      ModelRenderer net;
      
      public ModelNet()
      {
      textureWidth = 32;
      textureHeight = 32;
      
      handle = new ModelRenderer(this, 0, 0);
      handle.addBox(0F, 0F, 0F, 1, 1, 8);
      handle.setRotationPoint(0F, 23F, 0F);
      handle.setTextureSize(32, 32);
      handle.mirror = true;
      setRotation(handle, 0F, 0F, 0F);
      par1 = new ModelRenderer(this, 0, 10);
      par1.addBox(0F, 0F, 0F, 7, 1, 1);
      par1.setRotationPoint(-3F, 23F, -1F);
      par1.setTextureSize(32, 32);
      par1.mirror = true;
      setRotation(par1, 0F, 0F, 0F);
      par2 = new ModelRenderer(this, 0, 12);
      par2.addBox(0F, 0F, 0F, 1, 1, 5);
      par2.setRotationPoint(-3F, 23F, -6F);
      par2.setTextureSize(32, 32);
      par2.mirror = true;
      setRotation(par2, 0F, 0F, 0F);
      par3 = new ModelRenderer(this, 16, 10);
      par3.addBox(0F, 0F, 0F, 7, 1, 1);
      par3.setRotationPoint(-3F, 23F, -7F);
      par3.setTextureSize(32, 32);
      par3.mirror = true;
      setRotation(par3, 0F, 0F, 0F);
      par4 = new ModelRenderer(this, 12, 12);
      par4.addBox(0F, 0F, 0F, 1, 1, 5);
      par4.setRotationPoint(3F, 23F, -6F);
      par4.setTextureSize(32, 32);
      par4.mirror = true;
      setRotation(par4, 0F, 0F, 0F);
      net = new ModelRenderer(this, 0, 19);
      net.addBox(0F, 0F, 0F, 7, 5, 7);
      net.setRotationPoint(-3F, 18F, -7F);
      net.setTextureSize(32, 32);
      net.mirror = true;
      setRotation(net, 0F, 0F, 0F);
      }
      
      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);
      handle.render(f5);
      par1.render(f5);
      par2.render(f5);
      par3.render(f5);
      par4.render(f5);
      net.render(f5);
      }
      
      private void setRotation(ModelRenderer model, float x, float y, float z)
      {
      model.rotateAngleX = x;
      model.rotateAngleY = y;
      model.rotateAngleZ = z;
      }
      
      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);
      }
      }
      

      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

        En 1.7 il faut juste mettre l’item, pas de .itemID. En 1.8, je crois que cette fonctionnalité n’est plus du tout opérationnel à vérifier.

        1 réponse Dernière réponse Répondre Citer 0
        • Benjamin LoisonB Hors-ligne
          Benjamin Loison
          dernière édition par

          Robin ce tuto ne parle pas d’item de model comme la crée en elle-même parce que je n’ai pas l’impression qu’on en parle et j’ai juste une erreur du coup c’est :

          MinecraftForgeClient.registerItemRenderer(ModAltisCraft.BlocPanneauInterdit, (IItemRenderer)new ItemPanneauInterditRender());
          

          J’ai enlevé le .ItemID comme tu le dis en 1.7.X il n’y en a pas besoin mais du coup mon eclipse n’est pas très content et me propose pour le registerItemRenderer :

          • Change to ‘getItemRenderer(…)’ : qui fait que ce n’est pas une item et il ne kiff pas
          • Change type of ‘BlocPanneauInterdit’ to ‘Item’ : change dans ma classe principale le bloc en item et c’est le dawa comme c’est censé être un bloc…

          >! Développeur de Altis-Life (Arma III) sur Minecraft !
          >! Site web     : https://lemnoslife.com

          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

            Item.getItemFromBlock(ModAltisCraft.BlocPanneauInterdit) au lieu de ModAltisCraft.BlocPanneauInterdit

            1 réponse Dernière réponse Répondre Citer 0
            • Benjamin LoisonB Hors-ligne
              Benjamin Loison
              dernière édition par

              Merci mais j’ai encore 2 problèmes :

              ​package fr.altiscraft.altiscraft.common;
              
              import org.lwjgl.opengl.GL11;
              
              import net.minecraft.client.Minecraft;
              import net.minecraft.entity.Entity;
              import net.minecraft.item.ItemStack;
              import net.minecraft.util.ResourceLocation;
              import net.minecraftforge.client.IItemRenderer;
              
              public class ItemPanneauInterditRender implements IItemRenderer
              {
              
              protected ItemPanneauInterditRender model;
              protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png");
              
              public ItemPanneauInterditRender ()
              {
              model = new ItemPanneauInterditRender();
              }
              
              @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();
              Minecraft.getMinecraft().renderEngine).func_110577_a(texture);
              model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
              GL11.glPopMatrix();
              break;
              }
              default:
              break;
              }
              
              }
              
              

              Au .func_110577_a(texture); ce n’est pas une méthode reconnue, il ne me propose que : Add cast to method receiver
              A model.render il faut définir render ce que je fais et ça me donne ça :

              ​ private void render(Entity entity, float f, float g, float h, float i, float j, float k) {
              
              }
              

              Il y a t’il encore besoin de modification ?

              >! Développeur de Altis-Life (Arma III) sur Minecraft !
              >! Site web     : https://lemnoslife.com

              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

                Utilise model.renderAll() au lieu de model.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
                Pour le func_110577_a remplace par bindTexture

                1 réponse Dernière réponse Répondre Citer 0
                • Benjamin LoisonB Hors-ligne
                  Benjamin Loison
                  dernière édition par

                  La console me spam ceci maintenant je ne comprends pas d’où vient le problème :S

                  at fr.altiscraft.altiscraft.common.ItemPanneauInterditRender.<init>(ItemPanneauInterditRender.java:19)

                  ​package fr.altiscraft.altiscraft.common;
                  
                  import org.lwjgl.opengl.GL11;
                  
                  import net.minecraft.client.Minecraft;
                  import net.minecraft.entity.Entity;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.util.ResourceLocation;
                  import net.minecraftforge.client.IItemRenderer;
                  
                  public class ItemPanneauInterditRender implements IItemRenderer
                  {
                  
                  protected ItemPanneauInterditRender model;
                  protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png");
                  
                  public ItemPanneauInterditRender ()
                  {
                  model = new ItemPanneauInterditRender();
                  }
                  
                  @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();
                  Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                  GL11.glPopMatrix();
                  break;
                  }
                  default:
                  break;
                  }
                  }
                  
                  public void renderAll() {
                  }
                  
                  private void render(Entity entity, float f, float g, float h, float i, float j, float k) {
                  
                  }
                  
                  }
                  
                  ```</init>

                  >! Développeur de Altis-Life (Arma III) sur Minecraft !
                  >! Site web     : https://lemnoslife.com

                  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

                    protected ItemPanneauInterditRender model;
                    C’est ton modèle que tu es sensé mettre ici …
                    public void renderAll() {
                    }

                    private void render(Entity entity, float f, float g, float h, float i, float j, float k) {

                    }
                    Ces méthodes n’ont rien à faire là.

                    1 réponse Dernière réponse Répondre Citer 0
                    • Benjamin LoisonB Hors-ligne
                      Benjamin Loison
                      dernière édition par

                      Voilà maintenant ma classe :

                      ​package fr.altiscraft.altiscraft.common;
                      
                      import org.lwjgl.opengl.GL11;
                      
                      import fr.altiscraft.altiscraft.client.ModelBlockPanneauInterdit;
                      import net.minecraft.client.Minecraft;
                      import net.minecraft.item.ItemStack;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraftforge.client.IItemRenderer;
                      
                      public class ItemPanneauInterditRender implements IItemRenderer
                      {
                      
                      protected ModelBlockPanneauInterdit model;
                      protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png");
                      
                      public ItemPanneauInterditRender ()
                      {
                      model = new ModelBlockPanneauInterdit();
                      }
                      
                      @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(90.0F, 0.0F, 1.0F, 0.0F);
                      Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                      GL11.glPopMatrix();
                      break;
                      }
                      default:
                      break;
                      }
                      }
                      }
                      
                      

                      Mais lorsque je touche au glRotate rien ne se passe pour tous les rendu et maintenant le rendu dans le monde du panneau est invisible… et les panneaux se déplacent tels des Slenders… :S Une matrix pas fermé ?

                      >! Développeur de Altis-Life (Arma III) sur Minecraft !
                      >! Site web     : https://lemnoslife.com

                      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

                        GL11.glPushMatrix();
                        GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
                        Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                        GL11.glPopMatrix();
                        

                        Il te manque model.renderAll() avant le GL11.glPopMatrix();.
                        Pour le modèle dans le monde aucune idée 😕
                        Mais à mon avis comme tu utilise un IItemRenderer tu devrais l’utiliser pour tous ce qui rendu de l’inventaire et retirer ce que tu as dans le TESRInventoryRenderer (seulement ce qui concerne ce bloc, pas ce qui concerne les autres)

                        1 réponse Dernière réponse Répondre Citer 0
                        • Benjamin LoisonB Hors-ligne
                          Benjamin Loison
                          dernière édition par

                          Je ne vois plus l’item dans la main et mon slender est toujours présent maintenant voici ma classe :

                          ​package fr.altiscraft.altiscraft.common;
                          
                          import org.lwjgl.opengl.GL11;
                          
                          import fr.altiscraft.altiscraft.client.ModelBlockPanneauInterdit;
                          import net.minecraft.client.Minecraft;
                          import net.minecraft.item.ItemStack;
                          import net.minecraft.util.ResourceLocation;
                          import net.minecraftforge.client.IItemRenderer;
                          
                          public class ItemPanneauInterditRender implements IItemRenderer
                          {
                          
                          protected ModelBlockPanneauInterdit model;
                          protected static final ResourceLocation texture = new ResourceLocation("ModAltisCraft:textures/items/ItemPanneauInterdit.png");
                          
                          public ItemPanneauInterditRender ()
                          {
                          model = new ModelBlockPanneauInterdit();
                          }
                          
                          @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(90.0F, 0.0F, 1.0F, 0.0F);
                          Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                          model.renderAll();
                          GL11.glPopMatrix();
                          break;
                          }
                          default:
                          break;
                          }
                          }
                          }
                          
                          

                          >! Développeur de Altis-Life (Arma III) sur Minecraft !
                          >! Site web     : https://lemnoslife.com

                          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

                            protected static final ResourceLocation texture = new ResourceLocation(“ModAltisCraft:textures/items/ItemPanneauInterdit.png”);
                            Pas de maj au modid ->
                            protected static final ResourceLocation texture = new ResourceLocation(“modaltiscraft:textures/items/ItemPanneauInterdit.png”);
                            Pour le reste c’est pas normal, à la limite on regarde ça ensemble sur ts à l’occasion.

                            1 réponse Dernière réponse Répondre Citer 0
                            • Benjamin LoisonB Hors-ligne
                              Benjamin Loison
                              dernière édition par

                              Ok je vais faire ça et je serai sur ts demain le soir si tu es co laisses toi en AFK je te laisserai un message 🙂

                              >! Développeur de Altis-Life (Arma III) sur Minecraft !
                              >! Site web     : https://lemnoslife.com

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

                                Bonjour,
                                J’essaye de mettre mon model Techne mais impossible !
                                De plus j’ai deux erreurs :

                                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);
                                }
                                

                                Ici au niveau du deuxième “setRotationAngles”

                                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);
                                Garde.render(f5);
                                Manche.render(f5);
                                Lame1.render(f5);
                                Shape1.render(f5);
                                Shape2.render(f5);
                                Shape3.render(f5);
                                Shape4.render(f5);
                                Shape5.render(f5);
                                Shape6.render(f5);
                                Shape8.render(f5);
                                Shape9.render(f5);
                                }
                                

                                Et là au niveau du “super.render” le “render” est souligné

                                Pour les deux (quand je passe la souris dessus) sa me dis “The method setRotationAngles in the type ModelBase is not applicable for the argument”
                                Voila j’espère que vous pourrais m’aider !

                                Programmeur un peu trop ambicieux au vu des c'est capacité :D

                                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

                                  Utilise le correcteur de SCAREX : http://www.scarex.fr/model_corrector.php

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

                                    Ok je test sa merci 😄

                                    Envoyé de mon SM-G357FZ en utilisant Tapatalk

                                    Programmeur un peu trop ambicieux au vu des c'est capacité :D

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

                                      J’ai essayé mais je comprend pas la case “Nom du Package”
                                      EDIT : Finalement j’ai compris et merci tu est un Dieu !

                                      Programmeur un peu trop ambicieux au vu des c'est capacité :D

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

                                        Tutoriel toujours valable pour la 1.8 ?

                                        Membre fantôme
                                        Je développe maintenant un jeu sur UnrealEngine4


                                        Contact :…

                                        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

                                          Non, existe plus du tout. Maintenant faut utiliser les json.

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

                                            Yep. Si c’est pour faire des entités.

                                            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
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 1 / 7
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB