Example #1
0
 /** Overlays the background to hide scrolled items */
 private void overlayBackground(int par1, int par2, int par3, int par4) {
   // Spout Start
   GL11.glPushMatrix();
   // Spout End
   Tessellator var5 = Tessellator.instance;
   GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/gui/background.png"));
   GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
   // Spout Start
   GL11.glTranslatef(0, 0, -0.1f);
   // Spout End
   float var6 = 32.0F;
   var5.startDrawingQuads();
   var5.setColorRGBA_I(4210752, par4);
   var5.addVertexWithUV(0.0D, (double) par2, 0.0D, 0.0D, (double) ((float) par2 / var6));
   var5.addVertexWithUV(
       (double) this.width,
       (double) par2,
       0.0D,
       (double) ((float) this.width / var6),
       (double) ((float) par2 / var6));
   var5.setColorRGBA_I(4210752, par3);
   var5.addVertexWithUV(
       (double) this.width,
       (double) par1,
       0.0D,
       (double) ((float) this.width / var6),
       (double) ((float) par1 / var6));
   var5.addVertexWithUV(0.0D, (double) par1, 0.0D, 0.0D, (double) ((float) par1 / var6));
   var5.draw();
   // Spout Start
   GL11.glPopMatrix();
   // Spout End
 }
  /** Renders the animation for when an enderdragon dies */
  protected void renderDragonDying(EntityDragon par1EntityDragon, float par2) {
    super.renderEquippedItems(par1EntityDragon, par2);
    Tessellator tessellator = Tessellator.instance;

    if (par1EntityDragon.deathTicks > 0) {
      RenderHelper.disableStandardItemLighting();
      float f = ((float) par1EntityDragon.deathTicks + par2) / 200F;
      float f1 = 0.0F;

      if (f > 0.8F) {
        f1 = (f - 0.8F) / 0.2F;
      }

      Random random = new Random(432L);
      GL11.glDisable(GL11.GL_TEXTURE_2D);
      GL11.glShadeModel(GL11.GL_SMOOTH);
      GL11.glEnable(GL11.GL_BLEND);
      GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
      GL11.glDisable(GL11.GL_ALPHA_TEST);
      GL11.glEnable(GL11.GL_CULL_FACE);
      GL11.glDepthMask(false);
      GL11.glPushMatrix();
      GL11.glTranslatef(0.0F, -1F, -2F);

      for (int i = 0; (float) i < ((f + f * f) / 2.0F) * 60F; i++) {
        GL11.glRotatef(random.nextFloat() * 360F, 1.0F, 0.0F, 0.0F);
        GL11.glRotatef(random.nextFloat() * 360F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(random.nextFloat() * 360F, 0.0F, 0.0F, 1.0F);
        GL11.glRotatef(random.nextFloat() * 360F, 1.0F, 0.0F, 0.0F);
        GL11.glRotatef(random.nextFloat() * 360F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(random.nextFloat() * 360F + f * 90F, 0.0F, 0.0F, 1.0F);
        tessellator.startDrawing(6);
        float f2 = random.nextFloat() * 20F + 5F + f1 * 10F;
        float f3 = random.nextFloat() * 2.0F + 1.0F + f1 * 2.0F;
        tessellator.setColorRGBA_I(0xffffff, (int) (255F * (1.0F - f1)));
        tessellator.addVertex(0.0D, 0.0D, 0.0D);
        tessellator.setColorRGBA_I(0xff00ff, 0);
        tessellator.addVertex(-0.86599999999999999D * (double) f3, f2, -0.5F * f3);
        tessellator.addVertex(0.86599999999999999D * (double) f3, f2, -0.5F * f3);
        tessellator.addVertex(0.0D, f2, 1.0F * f3);
        tessellator.addVertex(-0.86599999999999999D * (double) f3, f2, -0.5F * f3);
        tessellator.draw();
      }

      GL11.glPopMatrix();
      GL11.glDepthMask(true);
      GL11.glDisable(GL11.GL_CULL_FACE);
      GL11.glDisable(GL11.GL_BLEND);
      GL11.glShadeModel(GL11.GL_FLAT);
      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
      GL11.glEnable(GL11.GL_TEXTURE_2D);
      GL11.glEnable(GL11.GL_ALPHA_TEST);
      RenderHelper.enableStandardItemLighting();
    }
  }
Example #3
0
 private void overlayBackground(int i, int j, int k, int l) {
   Tessellator tessellator = Tessellator.instance;
   GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/background.png"));
   GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
   float f = 32F;
   tessellator.startDrawingQuads();
   tessellator.setColorRGBA_I(0x404040, l);
   tessellator.addVertexWithUV(0.0D, j, 0.0D, 0.0D, (float) j / f);
   tessellator.addVertexWithUV(width, j, 0.0D, (float) width / f, (float) j / f);
   tessellator.setColorRGBA_I(0x404040, k);
   tessellator.addVertexWithUV(width, i, 0.0D, (float) width / f, (float) i / f);
   tessellator.addVertexWithUV(0.0D, i, 0.0D, 0.0D, (float) i / f);
   tessellator.draw();
 }
  /** Draws the main menu panorama */
  private void drawPanorama(int par1, int par2, float par3) {
    Tessellator var4 = Tessellator.instance;
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();
    GLU.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPushMatrix();
    GL11.glLoadIdentity();
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glRotatef(180.0F, 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);
    byte var5 = 8;

    for (int var6 = 0; var6 < var5 * var5; ++var6) {
      GL11.glPushMatrix();
      float var7 = ((float) (var6 % var5) / (float) var5 - 0.5F) / 64.0F;
      float var8 = ((float) (var6 / var5) / (float) var5 - 0.5F) / 64.0F;
      float var9 = 0.0F;
      GL11.glTranslatef(var7, var8, var9);
      GL11.glRotatef(
          MathHelper.sin(((float) this.panoramaTimer + par3) / 400.0F) * 25.0F + 20.0F,
          1.0F,
          0.0F,
          0.0F);
      GL11.glRotatef(-((float) this.panoramaTimer + par3) * 0.1F, 0.0F, 1.0F, 0.0F);

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

        if (var10 == 1) {
          GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
        }

        if (var10 == 2) {
          GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
        }

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

        if (var10 == 4) {
          GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        }

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

        this.mc.renderEngine.func_98187_b(titlePanoramaPaths[var10]);
        var4.startDrawingQuads();
        var4.setColorRGBA_I(16777215, 255 / (var6 + 1));
        float var11 = 0.0F;
        var4.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double) (0.0F + var11), (double) (0.0F + var11));
        var4.addVertexWithUV(1.0D, -1.0D, 1.0D, (double) (1.0F - var11), (double) (0.0F + var11));
        var4.addVertexWithUV(1.0D, 1.0D, 1.0D, (double) (1.0F - var11), (double) (1.0F - var11));
        var4.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double) (0.0F + var11), (double) (1.0F - var11));
        var4.draw();
        GL11.glPopMatrix();
      }

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

    var4.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);
  }
  /** 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);
  }
Example #6
0
  /** draws the slot to the screen, pass in mouse's current x and y and partial ticks */
  public void drawScreen(int par1, int par2, float par3) {
    this.mouseX = par1;
    this.mouseY = par2;
    this.drawBackground();
    int var4 = this.getSize();
    int var5 = this.getScrollBarX();
    int var6 = var5 + 6;
    int var9;
    int var10;
    int var11;
    int var13;
    int var19;

    if (Mouse.isButtonDown(0)) {
      if (this.initialClickY == -1.0F) {
        boolean var7 = true;

        if (par2 >= this.top && par2 <= this.bottom) {
          int var8 = this.width / 2 - 110;
          var9 = this.width / 2 + 110;
          var10 = par2 - this.top - this.field_77242_t + (int) this.amountScrolled - 4;
          var11 = var10 / this.slotHeight;

          if (par1 >= var8 && par1 <= var9 && var11 >= 0 && var10 >= 0 && var11 < var4) {
            boolean var12 =
                var11 == this.selectedElement
                    && Minecraft.getSystemTime() - this.lastClicked < 250L;
            this.elementClicked(var11, var12);
            this.selectedElement = var11;
            this.lastClicked = Minecraft.getSystemTime();
          } else if (par1 >= var8 && par1 <= var9 && var10 < 0) {
            this.func_77224_a(par1 - var8, par2 - this.top + (int) this.amountScrolled - 4);
            var7 = false;
          }

          if (par1 >= var5 && par1 <= var6) {
            this.scrollMultiplier = -1.0F;
            var19 = this.func_77209_d();

            if (var19 < 1) {
              var19 = 1;
            }

            var13 =
                (int)
                    ((float) ((this.bottom - this.top) * (this.bottom - this.top))
                        / (float) this.getContentHeight());

            if (var13 < 32) {
              var13 = 32;
            }

            if (var13 > this.bottom - this.top - 8) {
              var13 = this.bottom - this.top - 8;
            }

            this.scrollMultiplier /= (float) (this.bottom - this.top - var13) / (float) var19;
          } else {
            this.scrollMultiplier = 1.0F;
          }

          if (var7) {
            this.initialClickY = (float) par2;
          } else {
            this.initialClickY = -2.0F;
          }
        } else {
          this.initialClickY = -2.0F;
        }
      } else if (this.initialClickY >= 0.0F) {
        this.amountScrolled -= ((float) par2 - this.initialClickY) * this.scrollMultiplier;
        this.initialClickY = (float) par2;
      }
    } else {
      while (!this.mc.gameSettings.touchscreen && Mouse.next()) {
        int var16 = Mouse.getEventDWheel();

        if (var16 != 0) {
          if (var16 > 0) {
            var16 = -1;
          } else if (var16 < 0) {
            var16 = 1;
          }

          this.amountScrolled += (float) (var16 * this.slotHeight / 2);
        }
      }

      this.initialClickY = -1.0F;
    }

    this.bindAmountScrolled();
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_FOG);
    Tessellator var18 = Tessellator.instance;
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/gui/background.png"));
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    float var17 = 32.0F;
    var18.startDrawingQuads();
    var18.setColorOpaque_I(2105376);
    var18.addVertexWithUV(
        (double) this.left,
        (double) this.bottom,
        0.0D,
        (double) ((float) this.left / var17),
        (double) ((float) (this.bottom + (int) this.amountScrolled) / var17));
    var18.addVertexWithUV(
        (double) this.right,
        (double) this.bottom,
        0.0D,
        (double) ((float) this.right / var17),
        (double) ((float) (this.bottom + (int) this.amountScrolled) / var17));
    var18.addVertexWithUV(
        (double) this.right,
        (double) this.top,
        0.0D,
        (double) ((float) this.right / var17),
        (double) ((float) (this.top + (int) this.amountScrolled) / var17));
    var18.addVertexWithUV(
        (double) this.left,
        (double) this.top,
        0.0D,
        (double) ((float) this.left / var17),
        (double) ((float) (this.top + (int) this.amountScrolled) / var17));
    var18.draw();
    var9 = this.width / 2 - 92 - 16;
    var10 = this.top + 4 - (int) this.amountScrolled;

    if (this.field_77243_s) {
      this.func_77222_a(var9, var10, var18);
    }

    int var14;

    for (var11 = 0; var11 < var4; ++var11) {
      var19 = var10 + var11 * this.slotHeight + this.field_77242_t;
      var13 = this.slotHeight - 4;

      if (var19 <= this.bottom && var19 + var13 >= this.top) {
        if (this.showSelectionBox && this.isSelected(var11)) {
          var14 = this.width / 2 - 110;
          int var15 = this.width / 2 + 110;
          GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
          GL11.glDisable(GL11.GL_TEXTURE_2D);
          var18.startDrawingQuads();
          var18.setColorOpaque_I(8421504);
          var18.addVertexWithUV((double) var14, (double) (var19 + var13 + 2), 0.0D, 0.0D, 1.0D);
          var18.addVertexWithUV((double) var15, (double) (var19 + var13 + 2), 0.0D, 1.0D, 1.0D);
          var18.addVertexWithUV((double) var15, (double) (var19 - 2), 0.0D, 1.0D, 0.0D);
          var18.addVertexWithUV((double) var14, (double) (var19 - 2), 0.0D, 0.0D, 0.0D);
          var18.setColorOpaque_I(0);
          var18.addVertexWithUV(
              (double) (var14 + 1), (double) (var19 + var13 + 1), 0.0D, 0.0D, 1.0D);
          var18.addVertexWithUV(
              (double) (var15 - 1), (double) (var19 + var13 + 1), 0.0D, 1.0D, 1.0D);
          var18.addVertexWithUV((double) (var15 - 1), (double) (var19 - 1), 0.0D, 1.0D, 0.0D);
          var18.addVertexWithUV((double) (var14 + 1), (double) (var19 - 1), 0.0D, 0.0D, 0.0D);
          var18.draw();
          GL11.glEnable(GL11.GL_TEXTURE_2D);
        }

        this.drawSlot(var11, var9, var19, var13, var18);
      }
    }

    GL11.glDisable(GL11.GL_DEPTH_TEST);
    byte var20 = 4;
    this.overlayBackground(0, this.top, 255, 255);
    this.overlayBackground(this.bottom, this.height, 255, 255);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glShadeModel(GL11.GL_SMOOTH);
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    var18.startDrawingQuads();
    var18.setColorRGBA_I(0, 0);
    var18.addVertexWithUV((double) this.left, (double) (this.top + var20), 0.0D, 0.0D, 1.0D);
    var18.addVertexWithUV((double) this.right, (double) (this.top + var20), 0.0D, 1.0D, 1.0D);
    var18.setColorRGBA_I(0, 255);
    var18.addVertexWithUV((double) this.right, (double) this.top, 0.0D, 1.0D, 0.0D);
    var18.addVertexWithUV((double) this.left, (double) this.top, 0.0D, 0.0D, 0.0D);
    var18.draw();
    var18.startDrawingQuads();
    var18.setColorRGBA_I(0, 255);
    var18.addVertexWithUV((double) this.left, (double) this.bottom, 0.0D, 0.0D, 1.0D);
    var18.addVertexWithUV((double) this.right, (double) this.bottom, 0.0D, 1.0D, 1.0D);
    var18.setColorRGBA_I(0, 0);
    var18.addVertexWithUV((double) this.right, (double) (this.bottom - var20), 0.0D, 1.0D, 0.0D);
    var18.addVertexWithUV((double) this.left, (double) (this.bottom - var20), 0.0D, 0.0D, 0.0D);
    var18.draw();
    var19 = this.func_77209_d();

    if (var19 > 0) {
      var13 = (this.bottom - this.top) * (this.bottom - this.top) / this.getContentHeight();

      if (var13 < 32) {
        var13 = 32;
      }

      if (var13 > this.bottom - this.top - 8) {
        var13 = this.bottom - this.top - 8;
      }

      var14 = (int) this.amountScrolled * (this.bottom - this.top - var13) / var19 + this.top;

      if (var14 < this.top) {
        var14 = this.top;
      }

      var18.startDrawingQuads();
      var18.setColorRGBA_I(0, 255);
      var18.addVertexWithUV((double) var5, (double) this.bottom, 0.0D, 0.0D, 1.0D);
      var18.addVertexWithUV((double) var6, (double) this.bottom, 0.0D, 1.0D, 1.0D);
      var18.addVertexWithUV((double) var6, (double) this.top, 0.0D, 1.0D, 0.0D);
      var18.addVertexWithUV((double) var5, (double) this.top, 0.0D, 0.0D, 0.0D);
      var18.draw();
      var18.startDrawingQuads();
      var18.setColorRGBA_I(8421504, 255);
      var18.addVertexWithUV((double) var5, (double) (var14 + var13), 0.0D, 0.0D, 1.0D);
      var18.addVertexWithUV((double) var6, (double) (var14 + var13), 0.0D, 1.0D, 1.0D);
      var18.addVertexWithUV((double) var6, (double) var14, 0.0D, 1.0D, 0.0D);
      var18.addVertexWithUV((double) var5, (double) var14, 0.0D, 0.0D, 0.0D);
      var18.draw();
      var18.startDrawingQuads();
      var18.setColorRGBA_I(12632256, 255);
      var18.addVertexWithUV((double) var5, (double) (var14 + var13 - 1), 0.0D, 0.0D, 1.0D);
      var18.addVertexWithUV((double) (var6 - 1), (double) (var14 + var13 - 1), 0.0D, 1.0D, 1.0D);
      var18.addVertexWithUV((double) (var6 - 1), (double) var14, 0.0D, 1.0D, 0.0D);
      var18.addVertexWithUV((double) var5, (double) var14, 0.0D, 0.0D, 0.0D);
      var18.draw();
    }

    this.func_77215_b(par1, par2);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glShadeModel(GL11.GL_FLAT);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glDisable(GL11.GL_BLEND);
  }
Example #7
0
  public void drawScreen(int i, int j, float f) {
    drawBackground();
    int k = getSize();
    int l = width / 2 + 124;
    int i1 = l + 6;
    if (Mouse.isButtonDown(0)) {
      if (initialClickY == -1F) {
        boolean flag = true;
        if (j >= top && j <= bottom) {
          int j1 = width / 2 - 110;
          int k1 = width / 2 + 110;
          int i2 = ((j - top - field_27261_r) + (int) amountScrolled) - 4;
          int k2 = i2 / posZ;
          if (i >= j1 && i <= k1 && k2 >= 0 && i2 >= 0 && k2 < k) {
            boolean flag1 =
                k2 == selectedElement && System.currentTimeMillis() - lastClicked < 250L;
            elementClicked(k2, flag1);
            selectedElement = k2;
            lastClicked = System.currentTimeMillis();
          } else if (i >= j1 && i <= k1 && i2 < 0) {
            func_27255_a(i - j1, ((j - top) + (int) amountScrolled) - 4);
            flag = false;
          }
          if (i >= l && i <= i1) {
            scrollMultiplier = -1F;
            int i3 = getContentHeight() - (bottom - top - 4);
            if (i3 < 1) {
              i3 = 1;
            }
            int l3 = (int) ((float) ((bottom - top) * (bottom - top)) / (float) getContentHeight());
            if (l3 < 32) {
              l3 = 32;
            }
            if (l3 > bottom - top - 8) {
              l3 = bottom - top - 8;
            }
            scrollMultiplier /= (float) (bottom - top - l3) / (float) i3;
          } else {
            scrollMultiplier = 1.0F;
          }
          if (flag) {
            initialClickY = j;
          } else {
            initialClickY = -2F;
          }
        } else {
          initialClickY = -2F;
        }
      } else if (initialClickY >= 0.0F) {
        amountScrolled -= ((float) j - initialClickY) * scrollMultiplier;
        initialClickY = j;
      }
    } else {
      initialClickY = -1F;
    }
    bindAmountScrolled();
    GL11.glDisable(2896 /*GL_LIGHTING*/);
    GL11.glDisable(2912 /*GL_FOG*/);
    Tessellator tessellator = Tessellator.instance;
    GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/background.png"));
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    float f1 = 32F;
    tessellator.startDrawingQuads();
    tessellator.setColorOpaque_I(0x202020);
    tessellator.addVertexWithUV(
        left, bottom, 0.0D, (float) left / f1, (float) (bottom + (int) amountScrolled) / f1);
    tessellator.addVertexWithUV(
        right, bottom, 0.0D, (float) right / f1, (float) (bottom + (int) amountScrolled) / f1);
    tessellator.addVertexWithUV(
        right, top, 0.0D, (float) right / f1, (float) (top + (int) amountScrolled) / f1);
    tessellator.addVertexWithUV(
        left, top, 0.0D, (float) left / f1, (float) (top + (int) amountScrolled) / f1);
    tessellator.draw();
    int l1 = width / 2 - 92 - 16;
    int j2 = (top + 4) - (int) amountScrolled;
    if (field_27262_q) {
      func_27260_a(l1, j2, tessellator);
    }
    for (int l2 = 0; l2 < k; l2++) {
      int j3 = j2 + l2 * posZ + field_27261_r;
      int i4 = posZ - 4;
      if (j3 > bottom || j3 + i4 < top) {
        continue;
      }
      if (field_25123_p && isSelected(l2)) {
        int k4 = width / 2 - 110;
        int i5 = width / 2 + 110;
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        GL11.glDisable(3553 /*GL_TEXTURE_2D*/);
        tessellator.startDrawingQuads();
        tessellator.setColorOpaque_I(0x808080);
        tessellator.addVertexWithUV(k4, j3 + i4 + 2, 0.0D, 0.0D, 1.0D);
        tessellator.addVertexWithUV(i5, j3 + i4 + 2, 0.0D, 1.0D, 1.0D);
        tessellator.addVertexWithUV(i5, j3 - 2, 0.0D, 1.0D, 0.0D);
        tessellator.addVertexWithUV(k4, j3 - 2, 0.0D, 0.0D, 0.0D);
        tessellator.setColorOpaque_I(0);
        tessellator.addVertexWithUV(k4 + 1, j3 + i4 + 1, 0.0D, 0.0D, 1.0D);
        tessellator.addVertexWithUV(i5 - 1, j3 + i4 + 1, 0.0D, 1.0D, 1.0D);
        tessellator.addVertexWithUV(i5 - 1, j3 - 1, 0.0D, 1.0D, 0.0D);
        tessellator.addVertexWithUV(k4 + 1, j3 - 1, 0.0D, 0.0D, 0.0D);
        tessellator.draw();
        GL11.glEnable(3553 /*GL_TEXTURE_2D*/);
      }
      drawSlot(l2, l1, j3, i4, tessellator);
    }

    GL11.glDisable(2929 /*GL_DEPTH_TEST*/);
    byte byte0 = 4;
    overlayBackground(0, top, 255, 255);
    overlayBackground(bottom, height, 255, 255);
    GL11.glEnable(3042 /*GL_BLEND*/);
    GL11.glBlendFunc(770, 771);
    GL11.glDisable(3008 /*GL_ALPHA_TEST*/);
    GL11.glShadeModel(7425 /*GL_SMOOTH*/);
    GL11.glDisable(3553 /*GL_TEXTURE_2D*/);
    tessellator.startDrawingQuads();
    tessellator.setColorRGBA_I(0, 0);
    tessellator.addVertexWithUV(left, top + byte0, 0.0D, 0.0D, 1.0D);
    tessellator.addVertexWithUV(right, top + byte0, 0.0D, 1.0D, 1.0D);
    tessellator.setColorRGBA_I(0, 255);
    tessellator.addVertexWithUV(right, top, 0.0D, 1.0D, 0.0D);
    tessellator.addVertexWithUV(left, top, 0.0D, 0.0D, 0.0D);
    tessellator.draw();
    tessellator.startDrawingQuads();
    tessellator.setColorRGBA_I(0, 255);
    tessellator.addVertexWithUV(left, bottom, 0.0D, 0.0D, 1.0D);
    tessellator.addVertexWithUV(right, bottom, 0.0D, 1.0D, 1.0D);
    tessellator.setColorRGBA_I(0, 0);
    tessellator.addVertexWithUV(right, bottom - byte0, 0.0D, 1.0D, 0.0D);
    tessellator.addVertexWithUV(left, bottom - byte0, 0.0D, 0.0D, 0.0D);
    tessellator.draw();
    int k3 = getContentHeight() - (bottom - top - 4);
    if (k3 > 0) {
      int j4 = ((bottom - top) * (bottom - top)) / getContentHeight();
      if (j4 < 32) {
        j4 = 32;
      }
      if (j4 > bottom - top - 8) {
        j4 = bottom - top - 8;
      }
      int l4 = ((int) amountScrolled * (bottom - top - j4)) / k3 + top;
      if (l4 < top) {
        l4 = top;
      }
      tessellator.startDrawingQuads();
      tessellator.setColorRGBA_I(0, 255);
      tessellator.addVertexWithUV(l, bottom, 0.0D, 0.0D, 1.0D);
      tessellator.addVertexWithUV(i1, bottom, 0.0D, 1.0D, 1.0D);
      tessellator.addVertexWithUV(i1, top, 0.0D, 1.0D, 0.0D);
      tessellator.addVertexWithUV(l, top, 0.0D, 0.0D, 0.0D);
      tessellator.draw();
      tessellator.startDrawingQuads();
      tessellator.setColorRGBA_I(0x808080, 255);
      tessellator.addVertexWithUV(l, l4 + j4, 0.0D, 0.0D, 1.0D);
      tessellator.addVertexWithUV(i1, l4 + j4, 0.0D, 1.0D, 1.0D);
      tessellator.addVertexWithUV(i1, l4, 0.0D, 1.0D, 0.0D);
      tessellator.addVertexWithUV(l, l4, 0.0D, 0.0D, 0.0D);
      tessellator.draw();
      tessellator.startDrawingQuads();
      tessellator.setColorRGBA_I(0xc0c0c0, 255);
      tessellator.addVertexWithUV(l, (l4 + j4) - 1, 0.0D, 0.0D, 1.0D);
      tessellator.addVertexWithUV(i1 - 1, (l4 + j4) - 1, 0.0D, 1.0D, 1.0D);
      tessellator.addVertexWithUV(i1 - 1, l4, 0.0D, 1.0D, 0.0D);
      tessellator.addVertexWithUV(l, l4, 0.0D, 0.0D, 0.0D);
      tessellator.draw();
    }
    func_27257_b(i, j);
    GL11.glEnable(3553 /*GL_TEXTURE_2D*/);
    GL11.glShadeModel(7424 /*GL_FLAT*/);
    GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
    GL11.glDisable(3042 /*GL_BLEND*/);
  }