public void renderTopFace(Block par1Block, double par2, double par4, double par6, int par8)
    {
        Tessellator var9 = Tessellator.instance;

        if (this.overrideBlockTexture >= 0)
        {
            par8 = this.overrideBlockTexture;
        }

        int var10 = (par8 & 15) << 4;
        int var11 = par8 & 240;
        double var12 = ((double)var10 + par1Block.minX * 16.0D) / 256.0D;
        double var14 = ((double)var10 + par1Block.maxX * 16.0D - 0.01D) / 256.0D;
        double var16 = ((double)var11 + par1Block.minZ * 16.0D) / 256.0D;
        double var18 = ((double)var11 + par1Block.maxZ * 16.0D - 0.01D) / 256.0D;

        if (par1Block.minX < 0.0D || par1Block.maxX > 1.0D)
        {
            var12 = (double)(((float)var10 + 0.0F) / 256.0F);
            var14 = (double)(((float)var10 + 15.99F) / 256.0F);
        }

        if (par1Block.minZ < 0.0D || par1Block.maxZ > 1.0D)
        {
            var16 = (double)(((float)var11 + 0.0F) / 256.0F);
            var18 = (double)(((float)var11 + 15.99F) / 256.0F);
        }

        double var20 = var14;
        double var22 = var12;
        double var24 = var16;
        double var26 = var18;

        if (this.uvRotateTop == 1)
        {
            var12 = ((double)var10 + par1Block.minZ * 16.0D) / 256.0D;
            var16 = ((double)(var11 + 16) - par1Block.maxX * 16.0D) / 256.0D;
            var14 = ((double)var10 + par1Block.maxZ * 16.0D) / 256.0D;
            var18 = ((double)(var11 + 16) - par1Block.minX * 16.0D) / 256.0D;
            var24 = var16;
            var26 = var18;
            var20 = var12;
            var22 = var14;
            var16 = var18;
            var18 = var24;
        }
        else if (this.uvRotateTop == 2)
        {
            var12 = ((double)(var10 + 16) - par1Block.maxZ * 16.0D) / 256.0D;
            var16 = ((double)var11 + par1Block.minX * 16.0D) / 256.0D;
            var14 = ((double)(var10 + 16) - par1Block.minZ * 16.0D) / 256.0D;
            var18 = ((double)var11 + par1Block.maxX * 16.0D) / 256.0D;
            var20 = var14;
            var22 = var12;
            var12 = var14;
            var14 = var22;
            var24 = var18;
            var26 = var16;
        }
        else if (this.uvRotateTop == 3)
        {
            var12 = ((double)(var10 + 16) - par1Block.minX * 16.0D) / 256.0D;
            var14 = ((double)(var10 + 16) - par1Block.maxX * 16.0D - 0.01D) / 256.0D;
            var16 = ((double)(var11 + 16) - par1Block.minZ * 16.0D) / 256.0D;
            var18 = ((double)(var11 + 16) - par1Block.maxZ * 16.0D - 0.01D) / 256.0D;
            var20 = var14;
            var22 = var12;
            var24 = var16;
            var26 = var18;
        }

        double var28 = par2 + par1Block.minX;
        double var30 = par2 + par1Block.maxX;
        double var32 = par4 + par1Block.maxY;
        double var34 = par6 + par1Block.minZ;
        double var36 = par6 + par1Block.maxZ;

        if (this.enableAO)
        {
            var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
            var9.setBrightness(this.brightnessTopLeft);
            var9.addVertexWithUV(var30, var32, var36, var14, var18);
            var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
            var9.setBrightness(this.brightnessBottomLeft);
            var9.addVertexWithUV(var30, var32, var34, var20, var24);
            var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
            var9.setBrightness(this.brightnessBottomRight);
            var9.addVertexWithUV(var28, var32, var34, var12, var16);
            var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
            var9.setBrightness(this.brightnessTopRight);
            var9.addVertexWithUV(var28, var32, var36, var22, var26);
        }
        else
        {
            var9.addVertexWithUV(var30, var32, var36, var14, var18);
            var9.addVertexWithUV(var30, var32, var34, var20, var24);
            var9.addVertexWithUV(var28, var32, var34, var12, var16);
            var9.addVertexWithUV(var28, var32, var36, var22, var26);
        }
    }