package mods.custom_flags.client.renderer; import mods.custom_flags.CustomFlags; import net.minecraft.block.Block; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; /** * Created by Aaron on 2/08/13. */ public class FlagPoleItemRenderer implements IItemRenderer { @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return type != ItemRenderType.FIRST_PERSON_MAP; } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { int poleType = item.getItemDamage() % 5; Icon icon = CustomFlags.blockFlagPole.getIcon(2, poleType); Tessellator tess = Tessellator.instance; float size = 1.5F; switch (type) { case ENTITY: size = 1; GL11.glTranslatef(-0.5F, 0, 0F); if(item.isOnItemFrame()){ GL11.glTranslatef(0,-0.25F, 0); size = 0.75F; } case EQUIPPED: tess.startDrawingQuads(); tess.addVertexWithUV(7F/16F, size, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 0)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(9F/16F, size, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(9F/16F, 0, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(7F/16F, 0, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 0)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.draw(); tess.startDrawingQuads(); tess.addVertexWithUV(7F/16F, 0, 0F/16F, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(7F/16F, 0, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(7F/16F, size, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(7F/16F, size, 0F/16F, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.draw(); tess.startDrawingQuads(); tess.addVertexWithUV(7F/16F, 0, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(9F/16F, 0, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 3))), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(9F/16F, size, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 3))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(7F/16F, size, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.draw(); tess.startDrawingQuads(); tess.addVertexWithUV(9F/16F, size, 0F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 3))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(9F/16F, size, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 4))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(9F/16F, 0, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 4))), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(9F/16F, 0, 0F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 3))), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.draw(); icon = CustomFlags.blockFlagPole.getIcon(0, poleType); tess.startDrawingQuads(); tess.addVertexWithUV(7F / 16F, 0, 0F / 16F, icon.getInterpolatedU(6), icon.getInterpolatedV(6)); tess.addVertexWithUV(9F / 16F, 0, 0F / 16F, icon.getInterpolatedU(10), icon.getInterpolatedV(6)); tess.addVertexWithUV(9F / 16F, 0, 2F / 16F, icon.getInterpolatedU(10), icon.getInterpolatedV(10)); tess.addVertexWithUV(7F / 16F, 0, 2F / 16F, icon.getInterpolatedU(6), icon.getInterpolatedV(10)); tess.draw(); tess.startDrawingQuads(); tess.addVertexWithUV(9F / 16F, size, 0F / 16F, icon.getInterpolatedU(6), icon.getInterpolatedV(6)); tess.addVertexWithUV(7F / 16F, size, 0F / 16F, icon.getInterpolatedU(10), icon.getInterpolatedV(6)); tess.addVertexWithUV(7F / 16F, size, 2F / 16F, icon.getInterpolatedU(10), icon.getInterpolatedV(10)); tess.addVertexWithUV(9F / 16F, size, 2F / 16F, icon.getInterpolatedU(6), icon.getInterpolatedV(10)); tess.draw(); break; case EQUIPPED_FIRST_PERSON: tess.startDrawingQuads(); tess.addVertexWithUV(7F/16F, 1, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 0)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(9F/16F, 1, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(9F/16F, 0, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(7F/16F, 0, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 0)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.draw(); tess.startDrawingQuads(); tess.addVertexWithUV(7F/16F, 0, 0F/16F, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(7F/16F, 0, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(7F/16F, 1, 2F/16F, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(7F/16F, 1, 0F/16F, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.draw(); break; case INVENTORY: tess.startDrawingQuads(); tess.addVertexWithUV(6, 13, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 0)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(8, 15, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(8, 5, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.addVertexWithUV(6, 3, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 0)), icon.getInterpolatedV(CustomFlags.blockFlagPole.getTextDim(poleType, 0))); tess.draw(); tess.startDrawingQuads(); tess.addVertexWithUV(10, 3, 0, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV(0)); tess.addVertexWithUV(8, 5, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV(0)); tess.addVertexWithUV(8, 15, 0, icon.getInterpolatedU(CustomFlags.blockFlagPole.getTextDim(poleType, 1)), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.addVertexWithUV(10, 13, 0, icon.getInterpolatedU((CustomFlags.blockFlagPole.getTextDim(poleType, 2))), icon.getInterpolatedV((CustomFlags.blockFlagPole.getTextDim(poleType, 4)))); tess.draw(); icon = CustomFlags.blockFlagPole.getIcon(0, poleType); tess.startDrawingQuads(); tess.addVertexWithUV(8, 2, 0, icon.getInterpolatedU(6), icon.getInterpolatedV(10)); tess.addVertexWithUV(6, 3, 0, icon.getInterpolatedU(10), icon.getInterpolatedV(10)); tess.addVertexWithUV(8, 5, 0, icon.getInterpolatedU(10), icon.getInterpolatedV(6)); tess.addVertexWithUV(10, 3, 0, icon.getInterpolatedU(6), icon.getInterpolatedV(6)); tess.draw(); break; case FIRST_PERSON_MAP: break; } } }