Changé le IItemRender de la 1.7.10



  • Bonjour/Bonsoir, il y a quelleque j'ai fait un rendue spécial d'ailleur, j'avais galéré et demandé de 'laide au support MFF, maintenant je souhaiterais passé ce rendue en 1.8 (et oui je suis chaint :p), sauf que je n'arrive pas a trovuée les méthodes, j'ai cherché dans MapItemRender rien :/, voici ma classe :
    :::

    [font=Courier Newpackage ]fr.ph1823.MyLife.Item.civil%(#cc7832)[;
    ]
    import net.minecraft.client.Minecraft%(#cc7832)[;
    ]import net.minecraft.client.gui.FontRenderer%(#cc7832)[;
    ]import net.minecraft.client.gui.MapItemRenderer%(#cc7832)[;
    ]import net.minecraft.client.renderer.ItemRenderer%(#cc7832)[;
    ]import net.minecraft.client.renderer.Tessellator%(#cc7832)[;
    ]import net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[;
    ]
    import net.minecraft.item.ItemStack%(#cc7832)[;
    ]import net.minecraft.nbt.NBTTagCompound%(#cc7832)[;
    ]
    import net.minecraft.util.ResourceLocation%(#cc7832)[;
    ]
    
    import org.lwjgl.opengl.GL11%(#cc7832)[;
    ]
    
    %(#629755)[*/**
    *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016.
    *]%(#629755)[* */
    *]public class IdentityTechneRender implements IItemRenderer {
       protected Identity model%(#cc7832)[;
    ]    protected float zLevel%(#cc7832)[;
    ]    MapItemRenderer
    
       private static TextureManager *manager *= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[;
    ]
        protected static ResourceLocation *texture *= new ResourceLocation("plants:textures/items/card1.png")%(#cc7832)[;
    ]
        public IdentityTechneRender()
    
       {
           model = new Identity()%(#cc7832)[;
    ]    }
    
       %(#bbb529)[@Override
    ]    public boolean handleRenderType(ItemStack item, ItemRenderType type) {
           return /*type == ItemRenderType.EQUIPPED ||*/ type == ItemRenderType.EQUIPPED_FIRST_PERSON%(#cc7832)[;
    ]    }
    
       %(#bbb529)[@Override
    ]    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
          %(#808080)[// return type == ItemRenderType.EQUIPPED;
    ]        %(#cc7832)[return false;
    ]    }
    
       %(#bbb529)[@Override
    ]    public void renderItem(ItemRenderType type, ItemStack item, Object… data) {
    
           String name = "Iconnue"%(#cc7832)[;
    ]        String surname = "Inconnue"%(#cc7832)[;
    ]
            int age = 0%(#cc7832)[;
    ]        NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[;
    ]
            if (nbt != null) {
               age = nbt.getInteger("age")%(#cc7832)[;
    ]            name = nbt.getString("name") != null ? nbt.getString("name") : name%(#cc7832)[;
    ]            surname = nbt.getString("surname") != null ? nbt.getString("surname") : surname%(#cc7832)[;
    ]
           }
    
           FontRenderer font = Minecraft.*getMinecraft*().fontRenderer%(#cc7832)[;
    ]
            switch (type) {
               case EQUIPPED:
                   GL11.*glTranslatef*(1F, -.5F, 0F)%(#cc7832)[;
    ]%(#cc7832)[                break;
    ]            case EQUIPPED_FIRST_PERSON:
                   GL11.*glTranslatef*(8F, 2F, 2F)%(#cc7832)[;
    ]                GL11.*glRotatef*(-10F, 0F, 0F, 1F)%(#cc7832)[;
    ]%(#cc7832)[                break;
    ]            default:
           }
           GL11.*glRotatef*(180F, 0F, 0F, 1F)%(#cc7832)[;
    ]        GL11.*glScalef*(0.05F, 0.05F, 0.05F)%(#cc7832)[;
    ]
           font.drawStringWithShadow(surname,22,31, 0xFFFFFF)%(#cc7832)[;
    ]        font.drawStringWithShadow(name,22,41, 0xFFFFFF)%(#cc7832)[;
    ]        font.drawStringWithShadow(age +"",22,51, 0xFFFFFF)%(#cc7832)[;
    ]        *manager*.bindTexture(*texture*)%(#cc7832)[;
    ]        GL11.*glScalef*(0.5F, 0.5F, 0.5F)%(#cc7832)[;
    ]        GL11.*glTranslatef*(8F, 2F, 2F)%(#cc7832)[;
    ]        GL11.*glRotatef*(-10F, 0F, 0F, 1F)%(#cc7832)[;
    ]        drawTexturedModalRect(0,0,0,0,256,256)%(#cc7832)[;
    ]     %(#808080)[/*  Tessellator tessellator = Tessellator.instance;
    ]
    %(#808080)[        tessellator.startDrawingQuads();
    ]%(#808080)[        tessellator.addVertexWithUV((double)(0), (double)(16), (double)this.zLevel, (double)0, (double)16);
    ]%(#808080)[        tessellator.addVertexWithUV((double)(16), (double)(16), (double)this.zLevel, (double)0, (double)16);
    ]%(#808080)[        tessellator.addVertexWithUV((double)(16), (double)(0), (double)this.zLevel, (double)0, (double)16);
    ]%(#808080)[        tessellator.addVertexWithUV((double)(0), (double)(0), (double)this.zLevel, (double)0, (double)16);
    ]%(#808080)[        tessellator.draw();*/
    ]
    
       }
     %(#808080)[/*  public void drawTexturedModelRectFromIcon(int p_94065_1_, int p_94065_2_, int p_94065_4_, int p_94065_5_)
    ]%(#808080)[    {
    ]%(#808080)[        Tessellator tessellator = Tessellator.instance;
    ]%(#808080)[        tessellator.startDrawingQuads();
    ]%(#808080)[        tessellator.addVertexWithUV((double)(p_94065_1_ + 0), (double)(p_94065_2_ + p_94065_5_), (double)this.zLevel, (double)16, (double)0);
    ]%(#808080)[        tessellator.addVertexWithUV((double)(p_94065_1_ + p_94065_4_), (double)(p_94065_2_ + p_94065_5_), (double)this.zLevel, (double)16, (double)0);
    ]%(#808080)[        tessellator.addVertexWithUV((double)(p_94065_1_ + p_94065_4_), (double)(p_94065_2_ + 0), (double)this.zLevel, (double)16, (double)0);
    ]%(#808080)[        tessellator.addVertexWithUV((double)(p_94065_1_ + 0), (double)(p_94065_2_ + 0), (double)this.zLevel, (double)16, (double)0);
    ]%(#808080)[        tessellator.draw();
    ]%(#808080)[    }*/
    ]
           public void drawTexturedModalRect(int p_73729_1_, int p_73729_2_, int p_73729_3_, int p_73729_4_, int p_73729_5_, int p_73729_6_)
       {
           float f = 0.00390625F%(#cc7832)[;
    ]        float f1 = 0.00390625F%(#cc7832)[;
    ]        Tessellator tessellator = Tessellator.*instance*%(#cc7832)[;
    ]        tessellator.startDrawingQuads()%(#cc7832)[;
    ]        tessellator.addVertexWithUV((double)(p_73729_1_ + 0), (double)(p_73729_2_ + p_73729_6_), (double)this.zLevel, (double)((float)(p_73729_3_ + 0) * f), (double)((float)(p_73729_4_ + p_73729_6_) * f1))%(#cc7832)[;
    ]        tessellator.addVertexWithUV((double)(p_73729_1_ + p_73729_5_), (double)(p_73729_2_ + p_73729_6_), (double)this.zLevel, (double)((float)(p_73729_3_ + p_73729_5_) * f), (double)((float)(p_73729_4_ + p_73729_6_) * f1))%(#cc7832)[;
    ]        tessellator.addVertexWithUV((double)(p_73729_1_ + p_73729_5_), (double)(p_73729_2_ + 0), (double)this.zLevel, (double)((float)(p_73729_3_ + p_73729_5_) * f), (double)((float)(p_73729_4_ + 0) * f1))%(#cc7832)[;
    ]        tessellator.addVertexWithUV((double)(p_73729_1_ + 0), (double)(p_73729_2_ + 0), (double)this.zLevel, (double)((float)(p_73729_3_ + 0) * f), (double)((float)(p_73729_4_ + 0) * f1))%(#cc7832)[;
    ]        tessellator.draw()%(#cc7832)[;
    ]    }
    
    }
    

    :::
    Et un autre qui pose aussi problème, la ou on register le rendue : 
    :::

    [font=Courier Newpackage ]fr.ph1823.MyLife.Proxy%(#cc7832)[;
    ]
    
    import fr.ph1823.MyLife.GloryRP%(#cc7832)[;
    ]import fr.ph1823.MyLife.Item.civil.IdentityTechneRender%(#cc7832)[;
    ]
    import net.minecraft.client.Minecraft%(#cc7832)[;
    ]import net.minecraftforge.client.EnumHelperClient%(#cc7832)[;
    ]import net.minecraftforge.client.MinecraftForgeClient%(#cc7832)[;
    ]
    
    public class ClientProxy extends CommonProxy {
      public static ClientProxy *Clientt*%(#cc7832)[;
    ]   public ClientProxy() {
         *Clientt *= %(#cc7832)[this;
    ]
      }
      %(#bbb529)[@Override
    ]   public void registerRenderItem() {
         %(#808080)[//Minecraft.getMinecraft().getRenderItem().renderItem(GloryRP.Identity, new IdentityTechneRender());
    ]%(#808080)[   // MinecraftForgeClient.registerRenderItem(GloryRP.Identity.getMo, new IdentityTechneRender());
    ]   }
    }
    

    :::
    Voila, j'aimerais aussi ajouté le fait que le eprsonnage tienne l'item dans ca main, donc le fait quelle sois positionné casiment comme une carte (je ne sais pas trop ou touché pour la rotation en 1.7.10 je n'arrivé que a la faire bougé de bas en haut :/) et si possible affiché une partie de la main, merci de vos réponse =)


  • Administrateurs

    Salut,
    Le rendu ressemblait à quoi en 1.7.10 ?
    Pour information IItemRenderer n'est plus implémenté en 1.8 (donc non fonctionnel) et n'existe plus en 1.9.



  • Eu .. le rendue resemlbé a ca :
    http://image.noelshack.com/fichiers/2016/25/1466957501-2016-06-26-18-10-26.png je ne trouve que cette vieille image, mais le petit carré bleu était en beaucoup plus grand (voici le topic d'avant : https://www.minecraftforgefrance.fr/showthread.php?tid=3493&page=5 ) je continue mes recherche pour vori si je n'ai pas encore les source du mods 1.7.10, et d'accord, mais alors comment faire le rendue custom si il n'y a plus IItemRednder? Car je l'avais vue mais je n'ai pas vue en quoi/comment il était changé .


  • Administrateurs

    Tout passe par les json maintenant. Pour rendre un string ça va donc être compliqué … Il doit avoir des utilitaires pour faire des rendus complexes, mais je n'ai encore jamais utilisé ça.



  • D'accord merci :/ Mais alors comment Minecraft fait pour faire le rendue de la map? Car c'est un peut comme ca que je vodurais mon rendue ^^


  • Administrateurs

    Le rendu de la map semble hardcodé dans ItemRenderer et MapItemRenderer.

    Il y a peut-être moyen de faire quelque chose de similaire avec RenderSpecificHandEvent



  • Le RenderSpecificHandEvent n'existe pas en 1.8.9 :/ Il a juste RenderHandEvent mais je n'arrive pas a trovué comment el faire, et dans MapItemRenderer je ne trouve pas quelle aprtie du code correspond a itemrender :/


  • Administrateurs

    En 1.8, c'est dans ItemRenderer à la ligne 217.
    Et en effet pas d'event en 1.8, j'ai remonté un peu plus les appels de fonction, il n'y a aucune trace d'event bus :/

    J'ai trouvé ce post : http://www.minecraftforge.net/forum/index.php?topic=31327.0
    Apparemment il faut passer par ISmartItemModel

    Un exemple ici : https://github.com/TheGreyGhost/MinecraftByExample/blob/1-8final/src/main/java/minecraftbyexample/mbe15_item_smartitemmodel/