private void renderShadow(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
    {
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
        RenderEngine var10 = this.renderManager.renderEngine;
        var10.bindTexture(var10.getTexture("%clamp%/misc/shadow.png"));
        World var11 = this.getWorldFromRenderManager();
        GL11.glDepthMask(false);
        float var12 = this.shadowSize;

        if (par1Entity instanceof EntityLiving)
        {
            EntityLiving var13 = (EntityLiving)par1Entity;
            var12 *= var13.getRenderSizeModifier();

            if (var13 instanceof EntityAnimal)
            {
                EntityAnimal var14 = (EntityAnimal)var13;

                if (var14.isChild())
                {
                    var12 *= 0.5F;
                }
            }
        }

        double var36 = par1Entity.lastTickPosX + (par1Entity.posX - par1Entity.lastTickPosX) * (double)par9;
        double var15 = par1Entity.lastTickPosY + (par1Entity.posY - par1Entity.lastTickPosY) * (double)par9 + (double)par1Entity.getShadowSize();
        double var17 = par1Entity.lastTickPosZ + (par1Entity.posZ - par1Entity.lastTickPosZ) * (double)par9;
        int var19 = MathHelper.floor_double(var36 - (double)var12);
        int var20 = MathHelper.floor_double(var36 + (double)var12);
        int var21 = MathHelper.floor_double(var15 - (double)var12);
        int var22 = MathHelper.floor_double(var15);
        int var23 = MathHelper.floor_double(var17 - (double)var12);
        int var24 = MathHelper.floor_double(var17 + (double)var12);
        double var25 = par2 - var36;
        double var27 = par4 - var15;
        double var29 = par6 - var17;
        Tessellator var31 = Tessellator.instance;
        var31.startDrawingQuads();

        for (int var32 = var19; var32 <= var20; ++var32)
        {
            for (int var33 = var21; var33 <= var22; ++var33)
            {
                for (int var34 = var23; var34 <= var24; ++var34)
                {
                    int var35 = var11.getBlockId(var32, var33 - 1, var34);

                    if (var35 > 0 && var11.getBlockLightValue(var32, var33, var34) > 3)
                    {
                        this.renderShadowOnBlock(Block.blocksList[var35], par2, par4 + (double)par1Entity.getShadowSize(), par6, var32, var33, var34, par8, var12, var25, var27 + (double)par1Entity.getShadowSize(), var29);
                    }
                }
            }
        }

        var31.draw();
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        GL11.glDisable(GL11.GL_BLEND);
        GL11.glDepthMask(true);
    }