From 4f7ad220df0438b6f3382110577b53f29da46453 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 24 May 2018 15:50:07 -0400 Subject: Update of all changes --- .../jewelrycraft/item/render/ItemRender.java | 1415 +++++++++++--------- 1 file changed, 778 insertions(+), 637 deletions(-) mode change 100644 => 100755 src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java (limited to 'src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java') diff --git a/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java b/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java old mode 100644 new mode 100755 index fceb2d8..9b665ec --- a/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java +++ b/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java @@ -2,6 +2,7 @@ package darkknight.jewelrycraft.item.render; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; + import darkknight.jewelrycraft.JewelrycraftMod; import darkknight.jewelrycraft.util.JewelryNBT; import net.minecraft.block.Block; @@ -29,641 +30,781 @@ import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; -public class ItemRender implements IItemRenderer -{ - TileEntitySpecialRenderer render; - public TileEntity entity; - ModelBase model; - private RenderBlocks renderBlocksIr = new RenderBlocks(); - private Minecraft mc = Minecraft.getMinecraft(); - private static final ResourceLocation RES_ITEM_GLINT = new ResourceLocation("textures/misc/enchanted_item_glint.png"); - private float tran = 0F; - - /** - * @param render - * @param entity - * @param model - */ - public ItemRender(TileEntitySpecialRenderer render, TileEntity entity, ModelBase model) - { - this.entity = entity; - this.render = render; - this.model = model; - } - - public ItemRender() - {} - - /** - * @param item - * @param type - * @return - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) - { - return true; - } - - /** - * @param type - * @param item - * @param helper - * @return - */ - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) - { - return true; - } - - /** - * @param type - * @param item - * @param data - */ - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object ... data) - { - if (item != null) { - if (render != null && entity != null && JewelryNBT.item(item) == null) { - if (type == IItemRenderer.ItemRenderType.ENTITY) { - GL11.glRotatef(180f, 0f, 1f, 0f); - GL11.glTranslatef(-0.5f, -0.5f, -0.4f); - } - render.renderTileEntityAt(entity, 0.0D, 0.0D, 0.0D, 0.0F); - }else - if (JewelryNBT.item(item) != null) { - GL11.glPushMatrix(); - GL11.glColor3f(1F, 1F, 0F); - if (Item.getItemById(Integer.valueOf(item.getTagCompound().getTag("target").toString().split(",")[0].substring(4).replace("s", ""))) != null) - renderItem(Minecraft.getMinecraft().thePlayer, JewelryNBT.item(item), 0, type); - else renderItem(Minecraft.getMinecraft().thePlayer, new ItemStack(Blocks.end_portal), 0, type); - GL11.glPopMatrix(); - }else{ - GL11.glPushMatrix(); - GL11.glColor3f(1F, 1F, 0F); - renderItem(Minecraft.getMinecraft().thePlayer, new ItemStack(Blocks.end_portal), 0, type); - GL11.glPopMatrix(); - } - } - } - - public void renderItem(EntityLivingBase entity, ItemStack itemStack, int meta, ItemRenderType type) - { - GL11.glPushMatrix(); - TextureManager texturemanager = this.mc.getTextureManager(); - if (itemStack != null) { - Item item = itemStack.getItem(); - Block block = Block.getBlockFromItem(item); - IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(itemStack, type); - if (customRenderer != null) { - texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); - if (type.equals(type.EQUIPPED)) - GL11.glTranslatef(0.7F, 0.55F, 0.55F); - ForgeHooksClient.renderEquippedItem(type, customRenderer, renderBlocksIr, entity, itemStack); - }else - if (itemStack.getItemSpriteNumber() == 0 && item instanceof ItemBlock && RenderBlocks.renderItemIn3d(block.getRenderType())) { - texturemanager.bindTexture(texturemanager.getResourceLocation(0)); - if (type.equals(type.EQUIPPED)) - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (itemStack != null && block != null && block.getRenderBlockPass() != 0) { - GL11.glDepthMask(false); - renderBlockAsItem(block, itemStack.getItemDamage(), 1.0F); - GL11.glDepthMask(true); - }else{ - renderBlockAsItem(block, itemStack.getItemDamage(), 1.0F); - } - }else{ - IIcon iicon = itemStack.getIconIndex(); - if (iicon == null) { - GL11.glPopMatrix(); - return; - } - texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); - TextureUtil.func_152777_a(false, false, 1.0F); - Tessellator tessellator = Tessellator.instance; - float f = iicon.getMinU(); - float f1 = iicon.getMaxU(); - float f2 = iicon.getMinV(); - float f3 = iicon.getMaxV(); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - float f6 = 1.6F; - GL11.glScalef(f6, f6, f6); - if (type.equals(type.ENTITY)) { - GL11.glTranslatef(0.0F, 0.0265F, 0.0F); - GL11.glRotatef(-30F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); - GL11.glScalef(0.625F, 0.625F, 0.625F); - } - if (!type.equals(type.EQUIPPED_FIRST_PERSON)) { - GL11.glRotatef(45f, 0f, 1f, 0f); - GL11.glRotatef(180f, 0f, 1f, 0f); - GL11.glRotatef(30f, 1f, 0f, 0f); - if (type.equals(type.EQUIPPED)) { - GL11.glRotatef(35f, 1f, 0f, 0f); - GL11.glTranslatef(0F, -0.15F, -0.6F); - } - GL11.glTranslatef(-0.5F, -0.5F, 0.0F); - }else - if (type.equals(type.EQUIPPED_FIRST_PERSON)) { - GL11.glTranslatef(-0.35F, 0.4F, 0.93F); - GL11.glRotatef(45f, 0f, 1f, 0f); - GL11.glRotatef(-25f, 0f, 0f, 1f); - } - if (itemStack.getItem().requiresMultipleRenderPasses()) { - for(int x = 0; x < itemStack.getItem().getRenderPasses(itemStack.getItemDamage()); x++){ - iicon = itemStack.getItem().getIcon(itemStack, x); - f = iicon.getMinU(); - f1 = iicon.getMaxU(); - f2 = iicon.getMinV(); - f3 = iicon.getMaxV(); - ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); - } - }else{ - ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); - } - GL11.glDepthFunc(GL11.GL_EQUAL); - renderShine(tessellator, true); - GL11.glPushMatrix(); - float f8 = 0.325F; - GL11.glScalef(f8, f8, f8); - float f9 = (float)(Minecraft.getSystemTime() % 30000L) / 30000.0F * 8.0F; - GL11.glTranslatef(-f9, 0.0F, 0.0F); - GL11.glRotatef(30.0F, 0.0F, 0.0F, 1.0F); - ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); - GL11.glPopMatrix(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); - TextureUtil.func_147945_b(); - } - } - GL11.glPopMatrix(); - } - - public void renderBlockAsItem(Block block, int damage, float luminacy) - { - Tessellator tessellator = Tessellator.instance; - if (block == Blocks.dispenser || block == Blocks.dropper || block == Blocks.furnace) - damage = 3; - int j; - float f1; - float f2; - GL11.glColor4f(1F, 1F, 0F, 1.0F); - j = block.getRenderType(); - renderBlocksIr.setRenderBoundsFromBlock(block); - int k; - if (j != 0 && j != 31 && j != 39 && j != 16 && j != 26) { - GL11.glColor4f(1F, 1F, 0F, 1.0F); - if (j == 13) { - // Cactus - block.setBlockBoundsForItemRender(); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - f1 = 0.0625F; - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 0)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 1)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - tessellator.addTranslation(0.0F, 0.0F, f1); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 2)); - tessellator.addTranslation(0.0F, 0.0F, -f1); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - tessellator.addTranslation(0.0F, 0.0F, -f1); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 3)); - tessellator.addTranslation(0.0F, 0.0F, f1); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - tessellator.addTranslation(f1, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 4)); - tessellator.addTranslation(-f1, 0.0F, 0.0F); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - tessellator.addTranslation(-f1, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 5)); - tessellator.addTranslation(f1, 0.0F, 0.0F); - tessellator.draw(); - GL11.glTranslatef(0.0625F, 0.0F, 0.0625F); - GL11.glScalef(0.9375F - 0.0625F, 1F, 0.9375F - 0.0625F); - shinyBlock(tessellator, false); - }else - if (j == 22) { - // Chest - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - TileEntityRendererChestHelper.instance.renderChest(block, damage, luminacy); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glTranslatef(0.0625F, 0.0F, 0.0625F); - GL11.glScalef(0.9375F - 0.0625F, 0.875F, 0.9375F - 0.0625F); - shinyBlock(tessellator, false); - }else - if (j == 10) { - // Stairs - for(k = 0; k < 2; ++k){ - if (k == 0) { - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.5D); - } - if (k == 1) { - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.5D, 1.0D, 0.5D, 1.0D); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 0)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 1)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 2)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 3)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 4)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 5)); - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - }else - if (j == 27) { - // Dragon Egg - k = 0; - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - for(int l = 0; l < 8; ++l){ - byte b0 = 0; - byte b1 = 1; - if (l == 0) { - b0 = 2; - } - if (l == 1) { - b0 = 3; - } - if (l == 2) { - b0 = 4; - } - if (l == 3) { - b0 = 5; - b1 = 2; - } - if (l == 4) { - b0 = 6; - b1 = 3; - } - if (l == 5) { - b0 = 7; - b1 = 5; - } - if (l == 6) { - b0 = 6; - b1 = 2; - } - if (l == 7) { - b0 = 3; - } - float f5 = (float)b0 / 16.0F; - float f6 = 1.0F - (float)k / 16.0F; - float f7 = 1.0F - (float)(k + b1) / 16.0F; - k += b1; - renderBlocksIr.setRenderBounds((double)(0.5F - f5), (double)f7, (double)(0.5F - f5), (double)(0.5F + f5), (double)f6, (double)(0.5F + f5)); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 0)); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 1)); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 2)); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 3)); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 4)); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 5)); - } - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - }else - if (j == 11) { - // Fence - for(k = 0; k < 4; ++k){ - f2 = 0.125F; - if (k == 0) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), 0.0D, 0.0D, (double)(0.5F + f2), 1.0D, (double)(f2 * 2.0F)); - } - if (k == 1) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), 0.0D, (double)(1.0F - f2 * 2.0F), (double)(0.5F + f2), 1.0D, 1.0D); - } - f2 = 0.0625F; - if (k == 2) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), (double)(1.0F - f2 * 3.0F), (double)(-f2 * 2.0F), (double)(0.5F + f2), (double)(1.0F - f2), (double)(1.0F + f2 * 2.0F)); - } - if (k == 3) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), (double)(0.5F - f2 * 3.0F), (double)(-f2 * 2.0F), (double)(0.5F + f2), (double)(0.5F - f2), (double)(1.0F + f2 * 2.0F)); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 0)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 1)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 2)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 3)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 4)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 5)); - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - }else - if (j == 21) { - // Fence Gate - for(k = 0; k < 3; ++k){ - f2 = 0.0625F; - if (k == 0) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), 0.30000001192092896D, 0.0D, (double)(0.5F + f2), 1.0D, (double)(f2 * 2.0F)); - } - if (k == 1) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), 0.30000001192092896D, (double)(1.0F - f2 * 2.0F), (double)(0.5F + f2), 1.0D, 1.0D); - } - f2 = 0.0625F; - if (k == 2) { - renderBlocksIr.setRenderBounds((double)(0.5F - f2), 0.5D, 0.0D, (double)(0.5F + f2), (double)(1.0F - f2), 1.0D); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 0)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 1)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 2)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 3)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 4)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSide(block, 5)); - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - }else - if (j == 32) { - // Wall - for(k = 0; k < 2; ++k){ - if (k == 0) { - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D); - } - if (k == 1) { - renderBlocksIr.setRenderBounds(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 0, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 1, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 2, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 3, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 4, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 5, damage)); - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - }else - if (j == 35) { - // Anvil - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - renderBlocksIr.renderBlockAnvilOrient((BlockAnvil)block, 0, 0, 0, damage << 2, true); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - }else - if (j == 34) { - // Beacon - for(k = 0; k < 3; ++k){ - if (k == 0) { - renderBlocksIr.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.1875D, 0.875D); - renderBlocksIr.setOverrideBlockTexture(renderBlocksIr.getBlockIcon(Blocks.obsidian)); - }else - if (k == 1) { - renderBlocksIr.setRenderBounds(0.1875D, 0.1875D, 0.1875D, 0.8125D, 0.875D, 0.8125D); - renderBlocksIr.setOverrideBlockTexture(renderBlocksIr.getBlockIcon(Blocks.beacon)); - }else - if (k == 2) { - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - renderBlocksIr.setOverrideBlockTexture(renderBlocksIr.getBlockIcon(Blocks.glass)); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 0, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 1, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 2, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 3, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 4, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 5, damage)); - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - renderBlocksIr.clearOverrideBlockTexture(); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - shinyBlock(tessellator, false); - }else{ - try{ - FMLRenderAccessLibrary.renderInventoryBlock(renderBlocksIr, block, damage, j); - } - catch(Exception e){ - JewelrycraftMod.logger.error("Something went wrong with rendering the item"); - e.printStackTrace(); - } - } - }else{ - if (j == 16) { - damage = 1; - } - block.setBlockBoundsForItemRender(); - renderBlocksIr.setRenderBoundsFromBlock(block); - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 0, damage)); - tessellator.draw(); - GL11.glColor4f(1F, 1F, 0F, 1.0F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 1, damage)); - tessellator.draw(); - GL11.glColor4f(1F, 1F, 0F, 1.0F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 2, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 3, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 4, damage)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderBlocksIr.getBlockIconFromSideAndMetadata(block, 5, damage)); - tessellator.draw(); - GL11.glTranslatef((float)block.getBlockBoundsMinX(), (float)block.getBlockBoundsMinY(), (float)block.getBlockBoundsMinZ()); - GL11.glScalef((float)block.getBlockBoundsMaxX() - (float)block.getBlockBoundsMinX(), (float)block.getBlockBoundsMaxY() - (float)block.getBlockBoundsMinY(), (float)block.getBlockBoundsMaxZ() - (float)block.getBlockBoundsMinZ()); - shinyBlock(tessellator, false); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - } - - public void renderShine(Tessellator tessellator, boolean autoAnimate) - { - TextureManager texturemanager = this.mc.getTextureManager(); - texturemanager.bindTexture(RES_ITEM_GLINT); - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(768, 1, 1, 0); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glPushMatrix(); - float f8 = 0.325F; - GL11.glScalef(f8, f8, f8); - if (autoAnimate) - GL11.glTranslatef(17F, 0.0F, 0.0F); - else{ - GL11.glTranslatef(tran, 0.0F, 0.0F); - tran += 0.0004F; - if (tran >= 360F) - tran = 0F; - } - GL11.glRotatef(-30.0F, 0.0F, 0.0F, 1.0F); - GL11.glColor3f(1F, 1F, 0F); - ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.001F); - GL11.glPopMatrix(); - } - - public void shinyBlock(Tessellator tessellator, boolean autoAnimate) - { - GL11.glPushMatrix(); - GL11.glTranslatef(0F, 0.0F, -0.001F); - renderShine(tessellator, autoAnimate); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glTranslatef(1.0F, 0.0F, 1.0001F); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - renderShine(tessellator, autoAnimate); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glTranslatef(-0.001F, 0.0F, 0.0F); - GL11.glRotatef(90.0F, 0.0F, -1.0F, 0.0F); - renderShine(tessellator, autoAnimate); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glTranslatef(1.001F, 0.0F, 1.0F); - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - renderShine(tessellator, autoAnimate); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glTranslatef(0.0F, -0.001F, 0.0F); - GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); - renderShine(tessellator, autoAnimate); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glTranslatef(0.0F, 1.0F, 0.0F); - GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); - renderShine(tessellator, autoAnimate); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - } +public class ItemRender implements IItemRenderer { + TileEntitySpecialRenderer render; + public TileEntity entity; + ModelBase model; + private RenderBlocks renderBlocksIr = + new RenderBlocks(); + private Minecraft mc = + Minecraft.getMinecraft(); + private static final ResourceLocation RES_ITEM_GLINT = + new ResourceLocation("textures/misc/enchanted_item_glint.png"); + private float tran = 0F; + + /** + * @param render + * @param entity + * @param model + */ + public ItemRender(TileEntitySpecialRenderer render, TileEntity entity, + ModelBase model) { + this.entity = entity; + this.render = render; + this.model = model; + } + + public ItemRender() { + } + + /** + * @param item + * @param type + * @return + */ + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } + + /** + * @param type + * @param item + * @param helper + * @return + */ + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, + ItemStack item, ItemRendererHelper helper) { + return true; + } + + /** + * @param type + * @param item + * @param data + */ + @Override + public void renderItem(ItemRenderType type, ItemStack item, + Object... data) { + if (item != null) { + if (render != null && entity != null + && JewelryNBT.item(item) == null) { + if (type == IItemRenderer.ItemRenderType.ENTITY) { + GL11.glRotatef(180f, 0f, 1f, 0f); + GL11.glTranslatef(-0.5f, -0.5f, -0.4f); + } + render.renderTileEntityAt(entity, 0.0D, 0.0D, 0.0D, 0.0F); + } else if (JewelryNBT.item(item) != null) { + GL11.glPushMatrix(); + GL11.glColor3f(1F, 1F, 0F); + if (Item.getItemById(Integer.valueOf(item.getTagCompound() + .getTag("target").toString().split(",")[0] + .substring(4).replace("s", ""))) != null) + renderItem(Minecraft.getMinecraft().thePlayer, + JewelryNBT.item(item), 0, type); + else + renderItem(Minecraft.getMinecraft().thePlayer, + new ItemStack(Blocks.end_portal), 0, type); + GL11.glPopMatrix(); + } else { + GL11.glPushMatrix(); + GL11.glColor3f(1F, 1F, 0F); + renderItem(Minecraft.getMinecraft().thePlayer, + new ItemStack(Blocks.end_portal), 0, type); + GL11.glPopMatrix(); + } + } + } + + public void renderItem(EntityLivingBase entity, ItemStack itemStack, + int meta, ItemRenderType type) { + GL11.glPushMatrix(); + TextureManager texturemanager = this.mc.getTextureManager(); + if (itemStack != null) { + Item item = itemStack.getItem(); + Block block = Block.getBlockFromItem(item); + IItemRenderer customRenderer = + MinecraftForgeClient.getItemRenderer(itemStack, type); + if (customRenderer != null) { + texturemanager + .bindTexture(texturemanager.getResourceLocation( + itemStack.getItemSpriteNumber())); + if (type.equals(ItemRenderType.EQUIPPED)) + GL11.glTranslatef(0.7F, 0.55F, 0.55F); + ForgeHooksClient.renderEquippedItem(type, customRenderer, + renderBlocksIr, entity, itemStack); + } else if (itemStack.getItemSpriteNumber() == 0 + && item instanceof ItemBlock && RenderBlocks + .renderItemIn3d(block.getRenderType())) { + texturemanager.bindTexture( + texturemanager.getResourceLocation(0)); + if (type.equals(ItemRenderType.EQUIPPED)) + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + if (itemStack != null && block != null + && block.getRenderBlockPass() != 0) { + GL11.glDepthMask(false); + renderBlockAsItem(block, itemStack.getItemDamage(), + 1.0F); + GL11.glDepthMask(true); + } else { + renderBlockAsItem(block, itemStack.getItemDamage(), + 1.0F); + } + } else { + IIcon iicon = itemStack.getIconIndex(); + if (iicon == null) { + GL11.glPopMatrix(); + return; + } + texturemanager + .bindTexture(texturemanager.getResourceLocation( + itemStack.getItemSpriteNumber())); + TextureUtil.func_152777_a(false, false, 1.0F); + Tessellator tessellator = Tessellator.instance; + float f = iicon.getMinU(); + float f1 = iicon.getMaxU(); + float f2 = iicon.getMinV(); + float f3 = iicon.getMaxV(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + float f6 = 1.6F; + GL11.glScalef(f6, f6, f6); + if (type.equals(ItemRenderType.ENTITY)) { + GL11.glTranslatef(0.0F, 0.0265F, 0.0F); + GL11.glRotatef(-30F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); + GL11.glScalef(0.625F, 0.625F, 0.625F); + } + if (!type.equals(ItemRenderType.EQUIPPED_FIRST_PERSON)) { + GL11.glRotatef(45f, 0f, 1f, 0f); + GL11.glRotatef(180f, 0f, 1f, 0f); + GL11.glRotatef(30f, 1f, 0f, 0f); + if (type.equals(ItemRenderType.EQUIPPED)) { + GL11.glRotatef(35f, 1f, 0f, 0f); + GL11.glTranslatef(0F, -0.15F, -0.6F); + } + GL11.glTranslatef(-0.5F, -0.5F, 0.0F); + } else if (type + .equals(ItemRenderType.EQUIPPED_FIRST_PERSON)) { + GL11.glTranslatef(-0.35F, 0.4F, 0.93F); + GL11.glRotatef(45f, 0f, 1f, 0f); + GL11.glRotatef(-25f, 0f, 0f, 1f); + } + if (itemStack.getItem().requiresMultipleRenderPasses()) { + for (int x = 0; x < itemStack.getItem() + .getRenderPasses(itemStack.getItemDamage()); + x++) { + iicon = itemStack.getItem().getIcon(itemStack, x); + f = iicon.getMinU(); + f1 = iicon.getMaxU(); + f2 = iicon.getMinV(); + f3 = iicon.getMaxV(); + ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, + f3, iicon.getIconWidth(), + iicon.getIconHeight(), 0.0625F); + } + } else { + ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, + iicon.getIconWidth(), iicon.getIconHeight(), + 0.0625F); + } + GL11.glDepthFunc(GL11.GL_EQUAL); + renderShine(tessellator, true); + GL11.glPushMatrix(); + float f8 = 0.325F; + GL11.glScalef(f8, f8, f8); + float f9 = (float) (Minecraft.getSystemTime() % 30000L) + / 30000.0F * 8.0F; + GL11.glTranslatef(-f9, 0.0F, 0.0F); + GL11.glRotatef(30.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, + 1.0F, 256, 256, 0.0625F); + GL11.glPopMatrix(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + texturemanager + .bindTexture(texturemanager.getResourceLocation( + itemStack.getItemSpriteNumber())); + TextureUtil.func_147945_b(); + } + } + GL11.glPopMatrix(); + } + + public void renderBlockAsItem(Block block, int damage, + float luminacy) { + Tessellator tessellator = Tessellator.instance; + if (block == Blocks.dispenser || block == Blocks.dropper + || block == Blocks.furnace) + damage = 3; + int j; + float f1; + float f2; + GL11.glColor4f(1F, 1F, 0F, 1.0F); + j = block.getRenderType(); + renderBlocksIr.setRenderBoundsFromBlock(block); + int k; + if (j != 0 && j != 31 && j != 39 && j != 16 && j != 26) { + GL11.glColor4f(1F, 1F, 0F, 1.0F); + if (j == 13) { + // Cactus + block.setBlockBoundsForItemRender(); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + f1 = 0.0625F; + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 0)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 1)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + tessellator.addTranslation(0.0F, 0.0F, f1); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 2)); + tessellator.addTranslation(0.0F, 0.0F, -f1); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + tessellator.addTranslation(0.0F, 0.0F, -f1); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 3)); + tessellator.addTranslation(0.0F, 0.0F, f1); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + tessellator.addTranslation(f1, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 4)); + tessellator.addTranslation(-f1, 0.0F, 0.0F); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + tessellator.addTranslation(-f1, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 5)); + tessellator.addTranslation(f1, 0.0F, 0.0F); + tessellator.draw(); + GL11.glTranslatef(0.0625F, 0.0F, 0.0625F); + GL11.glScalef(0.9375F - 0.0625F, 1F, 0.9375F - 0.0625F); + shinyBlock(tessellator, false); + } else if (j == 22) { + // Chest + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + TileEntityRendererChestHelper.instance.renderChest(block, + damage, luminacy); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glTranslatef(0.0625F, 0.0F, 0.0625F); + GL11.glScalef(0.9375F - 0.0625F, 0.875F, + 0.9375F - 0.0625F); + shinyBlock(tessellator, false); + } else if (j == 10) { + // Stairs + for (k = 0; k < 2; ++k) { + if (k == 0) { + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, + 1.0D, 1.0D, 0.5D); + } + if (k == 1) { + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.5D, + 1.0D, 0.5D, 1.0D); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 0)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 1)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 2)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 3)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 4)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 5)); + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + } else if (j == 27) { + // Dragon Egg + k = 0; + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + for (int l = 0; l < 8; ++l) { + byte b0 = 0; + byte b1 = 1; + if (l == 0) { + b0 = 2; + } + if (l == 1) { + b0 = 3; + } + if (l == 2) { + b0 = 4; + } + if (l == 3) { + b0 = 5; + b1 = 2; + } + if (l == 4) { + b0 = 6; + b1 = 3; + } + if (l == 5) { + b0 = 7; + b1 = 5; + } + if (l == 6) { + b0 = 6; + b1 = 2; + } + if (l == 7) { + b0 = 3; + } + float f5 = (float) b0 / 16.0F; + float f6 = 1.0F - (float) k / 16.0F; + float f7 = 1.0F - (float) (k + b1) / 16.0F; + k += b1; + renderBlocksIr.setRenderBounds((double) (0.5F - f5), + (double) f7, (double) (0.5F - f5), + (double) (0.5F + f5), (double) f6, + (double) (0.5F + f5)); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 0)); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 1)); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 2)); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 3)); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 4)); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 5)); + } + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, + 1.0D, 1.0D); + } else if (j == 11) { + // Fence + for (k = 0; k < 4; ++k) { + f2 = 0.125F; + if (k == 0) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), 0.0D, 0.0D, + (double) (0.5F + f2), 1.0D, + (double) (f2 * 2.0F)); + } + if (k == 1) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), 0.0D, + (double) (1.0F - f2 * 2.0F), + (double) (0.5F + f2), 1.0D, 1.0D); + } + f2 = 0.0625F; + if (k == 2) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), + (double) (1.0F - f2 * 3.0F), + (double) (-f2 * 2.0F), + (double) (0.5F + f2), (double) (1.0F - f2), + (double) (1.0F + f2 * 2.0F)); + } + if (k == 3) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), + (double) (0.5F - f2 * 3.0F), + (double) (-f2 * 2.0F), + (double) (0.5F + f2), (double) (0.5F - f2), + (double) (1.0F + f2 * 2.0F)); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 0)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 1)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 2)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 3)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 4)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 5)); + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, + 1.0D, 1.0D); + } else if (j == 21) { + // Fence Gate + for (k = 0; k < 3; ++k) { + f2 = 0.0625F; + if (k == 0) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), 0.30000001192092896D, + 0.0D, (double) (0.5F + f2), 1.0D, + (double) (f2 * 2.0F)); + } + if (k == 1) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), 0.30000001192092896D, + (double) (1.0F - f2 * 2.0F), + (double) (0.5F + f2), 1.0D, 1.0D); + } + f2 = 0.0625F; + if (k == 2) { + renderBlocksIr.setRenderBounds( + (double) (0.5F - f2), 0.5D, 0.0D, + (double) (0.5F + f2), (double) (1.0F - f2), + 1.0D); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 0)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 1)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 2)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 3)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 4)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSide(block, 5)); + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + } else if (j == 32) { + // Wall + for (k = 0; k < 2; ++k) { + if (k == 0) { + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.3125D, + 1.0D, 0.8125D, 0.6875D); + } + if (k == 1) { + renderBlocksIr.setRenderBounds(0.25D, 0.0D, 0.25D, + 0.75D, 1.0D, 0.75D); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 0, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 1, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 2, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 3, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 4, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 5, damage)); + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, + 1.0D, 1.0D); + } else if (j == 35) { + // Anvil + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + renderBlocksIr.renderBlockAnvilOrient((BlockAnvil) block, + 0, 0, 0, damage << 2, true); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } else if (j == 34) { + // Beacon + for (k = 0; k < 3; ++k) { + if (k == 0) { + renderBlocksIr.setRenderBounds(0.125D, 0.0D, + 0.125D, 0.875D, 0.1875D, 0.875D); + renderBlocksIr + .setOverrideBlockTexture(renderBlocksIr + .getBlockIcon(Blocks.obsidian)); + } else if (k == 1) { + renderBlocksIr.setRenderBounds(0.1875D, 0.1875D, + 0.1875D, 0.8125D, 0.875D, 0.8125D); + renderBlocksIr + .setOverrideBlockTexture(renderBlocksIr + .getBlockIcon(Blocks.beacon)); + } else if (k == 2) { + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, + 1.0D, 1.0D, 1.0D); + renderBlocksIr.setOverrideBlockTexture( + renderBlocksIr.getBlockIcon(Blocks.glass)); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 0, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 1, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 2, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 3, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 4, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata( + block, 5, damage)); + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + renderBlocksIr.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, + 1.0D, 1.0D); + renderBlocksIr.clearOverrideBlockTexture(); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + shinyBlock(tessellator, false); + } else { + try { + FMLRenderAccessLibrary.renderInventoryBlock( + renderBlocksIr, block, damage, j); + } catch (Exception e) { + JewelrycraftMod.logger.error( + "Something went wrong with rendering the item"); + e.printStackTrace(); + } + } + } else { + if (j == 16) { + damage = 1; + } + block.setBlockBoundsForItemRender(); + renderBlocksIr.setRenderBoundsFromBlock(block); + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderBlocksIr.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata(block, + 0, damage)); + tessellator.draw(); + GL11.glColor4f(1F, 1F, 0F, 1.0F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderBlocksIr.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata(block, + 1, damage)); + tessellator.draw(); + GL11.glColor4f(1F, 1F, 0F, 1.0F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderBlocksIr.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata(block, + 2, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderBlocksIr.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata(block, + 3, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata(block, + 4, damage)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderBlocksIr.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, + renderBlocksIr.getBlockIconFromSideAndMetadata(block, + 5, damage)); + tessellator.draw(); + GL11.glTranslatef((float) block.getBlockBoundsMinX(), + (float) block.getBlockBoundsMinY(), + (float) block.getBlockBoundsMinZ()); + GL11.glScalef( + (float) block.getBlockBoundsMaxX() + - (float) block.getBlockBoundsMinX(), + (float) block.getBlockBoundsMaxY() + - (float) block.getBlockBoundsMinY(), + (float) block.getBlockBoundsMaxZ() + - (float) block.getBlockBoundsMinZ()); + shinyBlock(tessellator, false); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + } + + public void renderShine(Tessellator tessellator, boolean autoAnimate) { + TextureManager texturemanager = this.mc.getTextureManager(); + texturemanager.bindTexture(RES_ITEM_GLINT); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(768, 1, 1, 0); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glPushMatrix(); + float f8 = 0.325F; + GL11.glScalef(f8, f8, f8); + if (autoAnimate) + GL11.glTranslatef(17F, 0.0F, 0.0F); + else { + GL11.glTranslatef(tran, 0.0F, 0.0F); + tran += 0.0004F; + if (tran >= 360F) + tran = 0F; + } + GL11.glRotatef(-30.0F, 0.0F, 0.0F, 1.0F); + GL11.glColor3f(1F, 1F, 0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, + 256, 256, 0.001F); + GL11.glPopMatrix(); + } + + public void shinyBlock(Tessellator tessellator, boolean autoAnimate) { + GL11.glPushMatrix(); + GL11.glTranslatef(0F, 0.0F, -0.001F); + renderShine(tessellator, autoAnimate); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(1.0F, 0.0F, 1.0001F); + GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + renderShine(tessellator, autoAnimate); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(-0.001F, 0.0F, 0.0F); + GL11.glRotatef(90.0F, 0.0F, -1.0F, 0.0F); + renderShine(tessellator, autoAnimate); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(1.001F, 0.0F, 1.0F); + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + renderShine(tessellator, autoAnimate); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, -0.001F, 0.0F); + GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); + renderShine(tessellator, autoAnimate); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); + renderShine(tessellator, autoAnimate); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + } } -- cgit v1.2.3