Faire un rendue a peut près comme un me map
-
J’ai pas tout suivi là durant ces 4 pages…Et puis faut dire que ton code n’aide pas beaucoup, je te conseille de retirer les commentaires ou les vieux bouts de codes qui traînent, ça facilitera la lecture.
Réexplique moi stp, ce que tu souhaites faire, car l’interface IItemRenderer est pourtant très facile à utiliser, je ne vois pas où tu peux bloquer ^^’ -
Voici le code sans les vieux morceau :
%(#a9b7c6)[[font=Courier New]package ]fr.ph1823.MyLife.Item%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.Minecraft%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.gui.FontRenderer%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.Tessellator%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.entity.RenderItem%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.item.ItemStack%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.nbt.NBTTagCompound%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.util.ResourceLocation%(#cc7832)[; ]%(#cc7832)[import ]net.minecraftforge.client.IItemRenderer%(#cc7832)[; ] %(#cc7832)[import ]org.lwjgl.opengl.GL11%(#cc7832)[; ] %(#629755)[*/** *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016. *]%(#629755)[* */ *]%(#cc7832)[public class ]IdentityTechneRender %(#cc7832)[implements ]IItemRenderer { %(#cc7832)[protected ]Identity %(#9876aa)[model]%(#cc7832)[; ]%(#cc7832)[ protected float ]%(#9876aa)[zLevel]%(#cc7832)[; ] %(#cc7832)[ private static ]TextureManager %(#9876aa)[*manager *]= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[; ] %(#cc7832)[ protected static ]ResourceLocation %(#9876aa)[*texture *]= %(#cc7832)[new ]ResourceLocation(%(#6a8759)["plants:textures/items/card1.png"])%(#cc7832)[; ] %(#cc7832)[ public ]IdentityTechneRender() { %(#9876aa)[model ]= %(#cc7832)[new ]Identity()%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public boolean ]%(#ffc66d)[handleRenderType](ItemStack item%(#cc7832)[, ]ItemRenderType type) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED *]|| type == ItemRenderType.%(#9876aa)[*EQUIPPED_FIRST_PERSON*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public boolean ]%(#ffc66d)[shouldUseRenderHelper](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]ItemRendererHelper helper) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public void ]%(#ffc66d)[renderItem](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]Object… data) { String name = %(#6a8759)["Iconnue"]%(#cc7832)[; ] String surname = %(#6a8759)["Inconnue"]%(#cc7832)[; ] %(#cc7832)[ int ]age = %(#6897bb)[0]%(#cc7832)[; ] NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[; ] %(#cc7832)[ if ](nbt != %(#cc7832)[null]) { age = nbt.getInteger(%(#6a8759)["age"])%(#cc7832)[; ] name = nbt.getString(%(#6a8759)["name"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["name"]) : name%(#cc7832)[; ] surname = nbt.getString(%(#6a8759)["surname"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["surname"]) : surname%(#cc7832)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#cc7832)[; ] FontRenderer font = Minecraft.*getMinecraft*().%(#9876aa)[fontRenderer]%(#cc7832)[; ] %(#cc7832)[ switch ](type) { %(#cc7832)[case ]%(#9876aa)[*EQUIPPED*]: GL11.*glTranslatef*(%(#6897bb)[1F]%(#cc7832)[, ]-%(#6897bb)[.5F]%(#cc7832)[, ]%(#6897bb)[0F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ case ]%(#9876aa)[*EQUIPPED_FIRST_PERSON*]: GL11.*glTranslatef*(%(#6897bb)[8F]%(#cc7832)[, ]%(#6897bb)[2F]%(#cc7832)[, ]%(#6897bb)[2F])%(#cc7832)[; ] GL11.*glRotatef*(-%(#6897bb)[10F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ default]: } GL11.*glRotatef*(%(#6897bb)[180F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ] GL11.*glScalef*(%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F])%(#cc7832)[; ] font.drawStringWithShadow(surname%(#cc7832)[,]-%(#6897bb)[5]%(#cc7832)[,]%(#6897bb)[5]%(#cc7832)[, ]%(#6897bb)[0xFFFFFF])%(#cc7832)[; ] %(#9876aa)[*manager*].bindTexture(%(#9876aa)[*texture*])%(#cc7832)[; ] Tessellator tessellator = Tessellator.%(#9876aa)[*instance*]%(#cc7832)[; ] tessellator.startDrawingQuads()%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[16])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])(%(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[0]%(#cc7832)[, ](%(#cc7832)[double])%(#6897bb)[16])%(#cc7832)[; ] tessellator.draw()%(#cc7832)[; ] } }
Ce que jaimerais faire : c’est le même rendue que l’item MAP, (ItemMapRender) mais pour ma carte d’indentité, maintenant il ne me manque plus que me “background” que j’aimerais changé car j’ai l’icon de l’item mais “le background” et plus grand pour que cela sois plus lisible, et j’aimerais aussi ajouté si possible “les main” comme dans la map . Merci de vos réponse.
-
Malheureusement pour faire ça il faut que ton Item soit extends ItemMap
-
D’accord, mais puor le problème du “background” ?
-
Je vois pas ce que tu appelles background
-
L’image de font que je tente de render avec mon tessellator.
-
Fait un copier coller de la fonction entière, ensuite tu as juste à associer la texture que tu veux et à dessiner avec le tesselator. (envoi le code une fois ça fait)
PS : il est possible que le rendu soit en dehors de l’écran
-
Voici le code :
%(#a9b7c6)[[font=Courier New]package ]fr.ph1823.MyLife.Item.civil%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.client.Minecraft%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.gui.FontRenderer%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.Tessellator%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.client.renderer.texture.TextureManager%(#cc7832)[; ] %(#cc7832)[import ]net.minecraft.item.ItemStack%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.nbt.NBTTagCompound%(#cc7832)[; ]%(#cc7832)[import ]net.minecraft.util.ResourceLocation%(#cc7832)[; ]%(#cc7832)[import ]net.minecraftforge.client.IItemRenderer%(#cc7832)[; ] %(#cc7832)[import ]org.lwjgl.opengl.GL11%(#cc7832)[; ] %(#629755)[*/** *]%(#629755)[* * Created by ph1823 - Minecraft on 28/03/2016. *]%(#629755)[* */ *]%(#cc7832)[public class ]IdentityTechneRender %(#cc7832)[implements ]IItemRenderer { %(#cc7832)[protected ]Identity %(#9876aa)[model]%(#cc7832)[; ]%(#cc7832)[ protected float ]%(#9876aa)[zLevel]%(#cc7832)[; ] %(#cc7832)[ private static ]TextureManager %(#9876aa)[*manager *]= Minecraft.*getMinecraft*().getTextureManager()%(#cc7832)[; ] %(#cc7832)[ protected static ]ResourceLocation %(#9876aa)[*texture *]= %(#cc7832)[new ]ResourceLocation(%(#6a8759)["plants:textures/items/card1.png"])%(#cc7832)[; ] %(#cc7832)[ public ]IdentityTechneRender() { %(#9876aa)[model ]= %(#cc7832)[new ]Identity()%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public boolean ]%(#ffc66d)[handleRenderType](ItemStack item%(#cc7832)[, ]ItemRenderType type) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED *]|| type == ItemRenderType.%(#9876aa)[*EQUIPPED_FIRST_PERSON*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public boolean ]%(#ffc66d)[shouldUseRenderHelper](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]ItemRendererHelper helper) { %(#cc7832)[return ]type == ItemRenderType.%(#9876aa)[*EQUIPPED*]%(#cc7832)[; ] } %(#bbb529)[@Override ] %(#cc7832)[public void ]%(#ffc66d)[renderItem](ItemRenderType type%(#cc7832)[, ]ItemStack item%(#cc7832)[, ]Object… data) { String name = %(#6a8759)["Iconnue"]%(#cc7832)[; ] String surname = %(#6a8759)["Inconnue"]%(#cc7832)[; ] %(#cc7832)[ int ]age = %(#6897bb)[0]%(#cc7832)[; ] NBTTagCompound nbt = item.getTagCompound()%(#cc7832)[; ] %(#cc7832)[ if ](nbt != %(#cc7832)[null]) { age = nbt.getInteger(%(#6a8759)["age"])%(#cc7832)[; ] name = nbt.getString(%(#6a8759)["name"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["name"]) : name%(#cc7832)[; ] surname = nbt.getString(%(#6a8759)["surname"]) != %(#cc7832)[null ]? nbt.getString(%(#6a8759)["surname"]) : surname%(#cc7832)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#cc7832)[; ] FontRenderer font = Minecraft.*getMinecraft*().%(#9876aa)[fontRenderer]%(#cc7832)[; ] %(#cc7832)[ switch ](type) { %(#cc7832)[case ]%(#9876aa)[*EQUIPPED*]: GL11.*glTranslatef*(%(#6897bb)[1F]%(#cc7832)[, ]-%(#6897bb)[.5F]%(#cc7832)[, ]%(#6897bb)[0F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ case ]%(#9876aa)[*EQUIPPED_FIRST_PERSON*]: GL11.*glTranslatef*(%(#6897bb)[8F]%(#cc7832)[, ]%(#6897bb)[2F]%(#cc7832)[, ]%(#6897bb)[2F])%(#cc7832)[; ] GL11.*glRotatef*(-%(#6897bb)[10F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ]%(#cc7832)[ break; ]%(#cc7832)[ default]: } GL11.*glRotatef*(%(#6897bb)[180F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[0F]%(#cc7832)[, ]%(#6897bb)[1F])%(#cc7832)[; ] GL11.*glScalef*(%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F]%(#cc7832)[, ]%(#6897bb)[0.05F])%(#cc7832)[; ] font.drawStringWithShadow(surname%(#cc7832)[,]-%(#6897bb)[5]%(#cc7832)[,]%(#6897bb)[5]%(#cc7832)[, ]%(#6897bb)[0xFFFFFF])%(#cc7832)[; ] %(#9876aa)[*manager*].bindTexture(%(#9876aa)[*texture*])%(#cc7832)[; ] drawTexturedModalRect(%(#6897bb)[0]%(#cc7832)[,]%(#6897bb)[0]%(#cc7832)[,]%(#6897bb)[16]%(#cc7832)[,]%(#6897bb)[16]%(#cc7832)[,]%(#6897bb)[16]%(#cc7832)[,]%(#6897bb)[16])%(#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)[ }*/ ] %(#cc7832)[public void ]%(#ffc66d)[drawTexturedModalRect](%(#cc7832)[int ]p_73729_1_%(#cc7832)[, int ]p_73729_2_%(#cc7832)[, int ]p_73729_3_%(#cc7832)[, int ]p_73729_4_%(#cc7832)[, int ]p_73729_5_%(#cc7832)[, int ]p_73729_6_) { %(#cc7832)[float ]f = %(#6897bb)[0.00390625F]%(#cc7832)[; ]%(#cc7832)[ float ]f1 = %(#6897bb)[0.00390625F]%(#cc7832)[; ] Tessellator tessellator = Tessellator.%(#9876aa)[*instance*]%(#cc7832)[; ] tessellator.startDrawingQuads()%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(p_73729_1_ + %(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])(p_73729_2_ + p_73729_6_)%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_3_ + %(#6897bb)[0]) * f)%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_4_ + p_73729_6_) * f1))%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(p_73729_1_ + p_73729_5_)%(#cc7832)[, ](%(#cc7832)[double])(p_73729_2_ + p_73729_6_)%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_3_ + p_73729_5_) * f)%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_4_ + p_73729_6_) * f1))%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(p_73729_1_ + p_73729_5_)%(#cc7832)[, ](%(#cc7832)[double])(p_73729_2_ + %(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_3_ + p_73729_5_) * f)%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_4_ + %(#6897bb)[0]) * f1))%(#cc7832)[; ] tessellator.addVertexWithUV((%(#cc7832)[double])(p_73729_1_ + %(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])(p_73729_2_ + %(#6897bb)[0])%(#cc7832)[, ](%(#cc7832)[double])%(#cc7832)[this].%(#9876aa)[zLevel]%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_3_ + %(#6897bb)[0]) * f)%(#cc7832)[, ](%(#cc7832)[double])((%(#cc7832)[float])(p_73729_4_ + %(#6897bb)[0]) * f1))%(#cc7832)[; ] tessellator.draw()%(#cc7832)[; ] } }
, j’ai un problème cest que l’images est en 1250*882
Et voici ce que ca donne (un carré de rien du tout) :
-
1- La taille de ta texture doit être une puissance de 2 : 256x256, 512x512 etc. Tu peux prendre une taille au dessus et remplir le reste de vide
2- Une fois ça fait il faut faire ces calculs pour mettre la bonne taille : xMaxDeLaTexture / tailleEnXDeLaTexture * 256 (même chose pour l’axe y). Exemple : si ta texture fait 256x256 dans un fichier de 512x512, tu devras mettre taille sur x et y 128 (256 / 512 * 256 = 128)