Résolu 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 :
[font=Courier Newpackage ]fr.ph1823.MyLife.Item%(#cc7832)[; ] import net.minecraft.client.Minecraft%(#cc7832)[; ]import net.minecraft.client.gui.FontRenderer%(#cc7832)[; ]import net.minecraft.client.renderer.Tessellator%(#cc7832)[; ]import net.minecraft.client.renderer.entity.RenderItem%(#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 net.minecraftforge.client.IItemRenderer%(#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)[; ] 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) { return type == ItemRenderType.*EQUIPPED*%(#cc7832)[; ] } %(#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)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#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,-5,5, 0xFFFFFF)%(#cc7832)[; ] *manager*.bindTexture(*texture*)%(#cc7832)[; ] Tessellator tessellator = Tessellator.*instance*%(#cc7832)[; ] tessellator.startDrawingQuads()%(#cc7832)[; ] tessellator.addVertexWithUV((double)(0), (double)(16), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.addVertexWithUV((double)(16), (double)(16), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.addVertexWithUV((double)(16), (double)(0), (double)this.zLevel, (double)0, (double)16)%(#cc7832)[; ] tessellator.addVertexWithUV((double)(0), (double)(0), (double)this.zLevel, (double)0, (double)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 :
[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.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 net.minecraftforge.client.IItemRenderer%(#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)[; ] 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) { return type == ItemRenderType.*EQUIPPED*%(#cc7832)[; ] } %(#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)[; ] } net.minecraft.util.IIcon icon = item.getIconIndex()%(#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,-5,5, 0xFFFFFF)%(#cc7832)[; ] *manager*.bindTexture(*texture*)%(#cc7832)[; ] drawTexturedModalRect(0,0,16,16,16,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)[ }*/ ] 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)[; ] } }
, 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)