Navigation

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

    SOLVED Rendu 3D d'item en inventaire

    1.7.x
    1.7.10
    2
    5
    902
    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.
    • Folgansky
      Folgansky Correcteurs last edited by

      Yep, qqs soucis de compréhension vis à vis du rendu 3D en inventaire.

      package fr.powergame.modpg2.client.renders.items;
      
      import org.lwjgl.opengl.GL11;
      
      import fr.powergame.modpg2.client.models.ModelUSP;
      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 RenderUSP implements IItemRenderer
      {
          protected ModelUSP model;
          protected static final ResourceLocation texture = new ResourceLocation("ModPg2:textures/models/items/R700.png");
      
          public RenderUSP()
          {
              model = new ModelUSP();
          }
      
          @Override
          public boolean handleRenderType(ItemStack item, ItemRenderType type)
          {
              switch(type)
              {
                  case EQUIPPED:
                      return true;
                  case EQUIPPED_FIRST_PERSON:
                      return true;
                  case ENTITY:
                      return true;
                  case INVENTORY:
                      return true;
                  default:
                      return false;
              }
          }
      
          @Override
          public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
          {
              return false;
          }
      
          @Override
          public void renderItem(ItemRenderType type, ItemStack stack, Object… data)
          {
              switch(type)
              {
                  case EQUIPPED:
                  {
                      GL11.glPushMatrix();
                      GL11.glRotatef(90.F, 1.0F, 0.2F, 0.0F);
                      GL11.glRotatef(100.F, 1.0F, 0.0F, 0.0F);
                      GL11.glTranslatef(0.5F, -0.35F, -0.75F);
                      GL11.glScaled(0.5F, 0.5F, 0.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();
                      break;
                  }
                  case EQUIPPED_FIRST_PERSON:
                  {
                      GL11.glPushMatrix();
                      GL11.glRotatef(90.F, 1.0F, -0.2F, 0.0F);
                      GL11.glRotatef(100.F, 0.5F, -0.2F, -0.65F);
                      GL11.glRotatef(30.F, -0.2F, -1.2F, 0.0F);
                      GL11.glTranslatef(-0.4F, 0.0F, -2.7F);
                      GL11.glScaled(1F, 1F, 1F);
                      Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                      model.render((Entity)null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
                      GL11.glPopMatrix();
                      break;
                  }
                  case ENTITY:
                  {
                      GL11.glPushMatrix();
                      GL11.glRotatef(90.F, 1.0F, 0F, 0F);
                      GL11.glRotatef(90.F, 1.0F, 0F, 0F);
                      GL11.glTranslatef(0F, -0.3F, 0.3F);
                      GL11.glScaled(0.5F, 0.5F, 0.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();
                      break;
                  }
                  case INVENTORY:
                  {
                      GL11.glPushMatrix();
                      Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                      model.render((Entity)null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
                      GL11.glPopMatrix();
                      break;
                  }
                  default:
                      break;
              }
          }
      }
      

      Le rendu n’apparait pas en inventaire ou alors il n’est pas visible à l’écran
      Besoin de vos avis

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

        Salut,
        As-tu bien enregistré ton IItemRenderer ?

        1 Reply Last reply Reply Quote 0
        • Folgansky
          Folgansky Correcteurs last edited by

          Ah bah y’a que le rendu en inventaire qui pose problème. En main le rendu est bon et en 3ème personne aussi

                  MinecraftForgeClient.registerItemRenderer(ModPg2.itemUSP, new RenderUSP());
          
          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

            ah, j’avais mal lu, désolé.
            Essaies d’ajouter ses 3 lignes ? https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/client/renderer/items/ItemLightSaberRender.java#L110-L112
            il me semble que par défaut les coordonnées du rendu son endors de l’écran, donc il faut utiliser un glTranslatef

            1 Reply Last reply Reply Quote 0
            • Folgansky
              Folgansky Correcteurs last edited by

              Ah ouais c’est tordu en effet.
              Merci, plus qu’à bien régler tout ça.

              1 Reply Last reply Reply Quote 0
              • 1 / 1
              • First post
                Last post
              Design by Woryk
              Contact / Mentions Légales / Faire un don

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB