private void renderMenuBlock(Block block, float f, RenderBlocks renderblocks) {
   int i = block.getRenderType();
   renderblocks.setRenderBoundsFromBlock(block);
   Tessellator tessellator = Tessellator.instance;
   if (i == 0) {
     block.setBlockBoundsForItemRender();
     GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
     float f1 = 0.5F;
     float f2 = 1.0F;
     float f3 = 0.8F;
     float f4 = 0.6F;
     tessellator.startDrawingQuads();
     tessellator.setColorRGBA_F(f2, f2, f2, f);
     renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(0));
     tessellator.setColorRGBA_F(f1, f1, f1, f);
     renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(1));
     tessellator.setColorRGBA_F(f3, f3, f3, f);
     renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(2));
     renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(3));
     tessellator.setColorRGBA_F(f4, f4, f4, f);
     renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(4));
     renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(5));
     tessellator.draw();
     GL11.glTranslatef(0.5F, 0.5F, 0.5F);
   }
 }
 /** Renders the skybox in the main menu */
 private void renderSkybox(int par1, int par2, float par3) {
   GL11.glViewport(0, 0, 256, 256);
   drawPanorama(par1, par2, par3);
   GL11.glDisable(GL11.GL_TEXTURE_2D);
   GL11.glEnable(GL11.GL_TEXTURE_2D);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   rotateAndBlurSkybox(par3);
   GL11.glViewport(0, 0, mc.displayWidth, mc.displayHeight);
   Tessellator tessellator = Tessellator.instance;
   tessellator.startDrawingQuads();
   float f = width <= height ? 120F / (float) height : 120F / (float) width;
   float f1 = ((float) height * f) / 256F;
   float f2 = ((float) width * f) / 256F;
   GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
   GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
   tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
   int i = width;
   int j = height;
   tessellator.addVertexWithUV(0.0D, j, zLevel, 0.5F - f1, 0.5F + f2);
   tessellator.addVertexWithUV(i, j, zLevel, 0.5F - f1, 0.5F - f2);
   tessellator.addVertexWithUV(i, 0.0D, zLevel, 0.5F + f1, 0.5F - f2);
   tessellator.addVertexWithUV(0.0D, 0.0D, zLevel, 0.5F + f1, 0.5F + f2);
   tessellator.draw();
 }
 public void drawLiquidRect(int startU, int startV, Icon par3Icon, int endU, int endV) {
   Tessellator tessellator = Tessellator.instance;
   tessellator.startDrawingQuads();
   tessellator.addVertexWithUV(
       startU + 0,
       startV + endV,
       this.zLevel,
       par3Icon.getMinU(),
       par3Icon.getMaxV()); // Bottom left
   tessellator.addVertexWithUV(
       startU + endU,
       startV + endV,
       this.zLevel,
       par3Icon.getMaxU(),
       par3Icon.getMaxV()); // Bottom right
   tessellator.addVertexWithUV(
       startU + endU,
       startV + 0,
       this.zLevel,
       par3Icon.getMaxU(),
       par3Icon.getMinV()); // Top right
   tessellator.addVertexWithUV(
       startU + 0, startV + 0, this.zLevel, par3Icon.getMinU(), par3Icon.getMinV()); // Top left
   tessellator.draw();
 }
 private void RenderMissileInInv(RenderBlocks renderer, Block block, int metadata) {
   Tessellator tesselator = Tessellator.instance;
   int sideTex = 0;
   int topTex = 0;
   for (int i = 0; i < 6; i++) {
     // Get bounds for each rectangle
     if (i == 0) block.setBlockBounds(0.4F, 0.95F, 0.4F, 0.6F, 1.0F, 0.6F);
     else if (i == 1) block.setBlockBounds(0.3F, 0.0F, 0.3F, 0.7F, 0.95F, 0.7F);
     else if (i == 2) block.setBlockBounds(0.4F, 0F, 0.1F, 0.6F, 0.4F, 0.3F);
     else if (i == 3) block.setBlockBounds(0.4F, 0F, 0.7F, 0.6F, 0.4F, 0.9F);
     else if (i == 4) block.setBlockBounds(0.1F, 0F, 0.4F, 0.3F, 0.4F, 0.6F);
     else if (i == 5) block.setBlockBounds(0.7F, 0F, 0.4F, 0.9F, 0.4F, 0.6F);
     // Get textures
     if (i == 0 && metadata != 0 && metadata != 15) {
       topTex = 15;
       sideTex = block.getBlockTextureFromSideAndMetadata(1, metadata);
     } else if (i == 0) {
       topTex = 18;
       sideTex = block.getBlockTextureFromSideAndMetadata(1, metadata);
     } else if (i == 1 && metadata != 0 && metadata != 15) {
       sideTex = block.getBlockTextureFromSideAndMetadata(1, 1);
       topTex = block.getBlockTextureFromSideAndMetadata(1, 1);
     } else if (i == 1) {
       sideTex = block.getBlockTextureFromSideAndMetadata(1, metadata);
       topTex = block.getBlockTextureFromSideAndMetadata(1, metadata);
     } else if (metadata != 0 && metadata != 15) {
       sideTex = topTex = 15;
     } else {
       sideTex = topTex = 18;
     }
     GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
     tesselator.startDrawingQuads();
     tesselator.setNormal(0.0F, -1.0F, 0.0F);
     renderer.renderBottomFace(block, 0.0D, 0.0D, 0.0D, sideTex);
     tesselator.draw();
     tesselator.startDrawingQuads();
     tesselator.setNormal(0.0F, 1.0F, 0.0F);
     renderer.renderTopFace(block, 0.0D, 0.0D, 0.0D, topTex);
     tesselator.draw();
     tesselator.startDrawingQuads();
     tesselator.setNormal(0.0F, 0.0F, -1.0F);
     renderer.renderEastFace(block, 0.0D, 0.0D, 0.0D, sideTex);
     tesselator.draw();
     tesselator.startDrawingQuads();
     tesselator.setNormal(0.0F, 0.0F, 1.0F);
     renderer.renderWestFace(block, 0.0D, 0.0D, 0.0D, sideTex);
     tesselator.draw();
     tesselator.startDrawingQuads();
     tesselator.setNormal(-1.0F, 0.0F, 0.0F);
     renderer.renderNorthFace(block, 0.0D, 0.0D, 0.0D, sideTex);
     tesselator.draw();
     tesselator.startDrawingQuads();
     tesselator.setNormal(1.0F, 0.0F, 0.0F);
     renderer.renderSouthFace(block, 0.0D, 0.0D, 0.0D, sideTex);
     tesselator.draw();
     GL11.glTranslatef(0.5F, 0.5F, 0.5F);
   }
   block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
 }
  /** Rotate and blurs the skybox view in the main menu */
  private void rotateAndBlurSkybox(float par1) {
    mc.func_110434_K().func_110577_a(field_110351_G);
    GL11.glCopyTexSubImage2D(GL11.GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glColorMask(true, true, true, false);
    Tessellator tessellator = Tessellator.instance;
    tessellator.startDrawingQuads();
    byte byte0 = 3;

    for (int i = 0; i < byte0; i++) {
      tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (float) (i + 1));
      int j = width;
      int k = height;
      float f = (float) (i - byte0 / 2) / 256F;
      tessellator.addVertexWithUV(j, k, zLevel, 0.0F + f, 0.0D);
      tessellator.addVertexWithUV(j, 0.0D, zLevel, 1.0F + f, 0.0D);
      tessellator.addVertexWithUV(0.0D, 0.0D, zLevel, 1.0F + f, 1.0D);
      tessellator.addVertexWithUV(0.0D, k, zLevel, 0.0F + f, 1.0D);
    }

    tessellator.draw();
    GL11.glColorMask(true, true, true, true);
  }
 private void RenderMachineInInv(RenderBlocks renderer, Block block, int metadata) {
   Tessellator tesselator = Tessellator.instance;
   block.setBlockBounds(0, 0, 0, 1, 1, 1);
   GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
   tesselator.startDrawingQuads();
   tesselator.setNormal(0.0F, -1.0F, 0.0F);
   renderer.renderBottomFace(
       block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(0, metadata));
   tesselator.draw();
   tesselator.startDrawingQuads();
   tesselator.setNormal(0.0F, 1.0F, 0.0F);
   renderer.renderTopFace(
       block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(1, metadata));
   tesselator.draw();
   tesselator.startDrawingQuads();
   tesselator.setNormal(0.0F, 0.0F, -1.0F);
   renderer.renderEastFace(
       block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(2, metadata));
   tesselator.draw();
   tesselator.startDrawingQuads();
   tesselator.setNormal(0.0F, 0.0F, 1.0F);
   renderer.renderWestFace(
       block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(3, metadata));
   tesselator.draw();
   tesselator.startDrawingQuads();
   tesselator.setNormal(-1.0F, 0.0F, 0.0F);
   renderer.renderNorthFace(
       block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(4, metadata));
   tesselator.draw();
   tesselator.startDrawingQuads();
   tesselator.setNormal(1.0F, 0.0F, 0.0F);
   renderer.renderSouthFace(
       block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(5, metadata));
   tesselator.draw();
   GL11.glTranslatef(0.5F, 0.5F, 0.5F);
 }
  /** Draws the main menu panorama */
  private void drawPanorama(int par1, int par2, float par3) {
    Tessellator tessellator = Tessellator.instance;
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();
    Project.gluPerspective(120F, 1.0F, 0.05F, 10F);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glDisable(GL11.GL_CULL_FACE);
    GL11.glDepthMask(false);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    int i = 8;

    for (int j = 0; j < i * i; j++) {
      GL11.glPushMatrix();
      float f = ((float) (j % i) / (float) i - 0.5F) / 64F;
      float f1 = ((float) (j / i) / (float) i - 0.5F) / 64F;
      float f2 = 0.0F;
      GL11.glTranslatef(f, f1, f2);
      GL11.glRotatef(
          MathHelper.sin(((float) panoramaTimer + par3) / 400F) * 25F + 20F, 1.0F, 0.0F, 0.0F);
      GL11.glRotatef(-((float) panoramaTimer + par3) * 0.1F, 0.0F, 1.0F, 0.0F);

      for (int k = 0; k < 6; k++) {
        GL11.glPushMatrix();

        if (k == 1) {
          GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
        }

        if (k == 2) {
          GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
        }

        if (k == 3) {
          GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F);
        }

        if (k == 4) {
          GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
        }

        if (k == 5) {
          GL11.glRotatef(-90F, 1.0F, 0.0F, 0.0F);
        }

        mc.func_110434_K().func_110577_a(titlePanoramaPaths[k]);
        tessellator.startDrawingQuads();
        tessellator.setColorRGBA_I(0xffffff, 255 / (j + 1));
        float f3 = 0.0F;
        tessellator.addVertexWithUV(-1D, -1D, 1.0D, 0.0F + f3, 0.0F + f3);
        tessellator.addVertexWithUV(1.0D, -1D, 1.0D, 1.0F - f3, 0.0F + f3);
        tessellator.addVertexWithUV(1.0D, 1.0D, 1.0D, 1.0F - f3, 1.0F - f3);
        tessellator.addVertexWithUV(-1D, 1.0D, 1.0D, 0.0F + f3, 1.0F - f3);
        tessellator.draw();
        GL11.glPopMatrix();
      }

      GL11.glPopMatrix();
      GL11.glColorMask(true, true, true, false);
    }

    tessellator.setTranslation(0.0D, 0.0D, 0.0D);
    GL11.glColorMask(true, true, true, true);
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPopMatrix();
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPopMatrix();
    GL11.glDepthMask(true);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
  }