protected void drawSlot(int par1, int par2, int par3, int par4, Tessellator par5Tessellator) {
   TexturePackBase var6 =
       (TexturePackBase)
           GuiTexturePacks.func_73953_j(this.parentTexturePackGui)
               .texturePackList
               .availableTexturePacks()
               .get(par1);
   var6.bindThumbnailTexture(GuiTexturePacks.func_73961_k(this.parentTexturePackGui).renderEngine);
   GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
   par5Tessellator.startDrawingQuads();
   par5Tessellator.setColorOpaque_I(16777215);
   par5Tessellator.addVertexWithUV((double) par2, (double) (par3 + par4), 0.0D, 0.0D, 1.0D);
   par5Tessellator.addVertexWithUV((double) (par2 + 32), (double) (par3 + par4), 0.0D, 1.0D, 1.0D);
   par5Tessellator.addVertexWithUV((double) (par2 + 32), (double) par3, 0.0D, 1.0D, 0.0D);
   par5Tessellator.addVertexWithUV((double) par2, (double) par3, 0.0D, 0.0D, 0.0D);
   par5Tessellator.draw();
   this.parentTexturePackGui.drawString(
       GuiTexturePacks.func_73960_l(this.parentTexturePackGui),
       var6.getTexturePackFileName(),
       par2 + 32 + 2,
       par3 + 1,
       16777215);
   this.parentTexturePackGui.drawString(
       GuiTexturePacks.func_73963_m(this.parentTexturePackGui),
       var6.getFirstDescriptionLine(),
       par2 + 32 + 2,
       par3 + 12,
       8421504);
   this.parentTexturePackGui.drawString(
       GuiTexturePacks.func_73954_n(this.parentTexturePackGui),
       var6.getSecondDescriptionLine(),
       par2 + 32 + 2,
       par3 + 12 + 10,
       8421504);
 }
  public int[] getTextureContents(String par1Str) {
    TexturePackBase var2 = this.texturePack.getSelectedTexturePack();
    int[] var3 = (int[]) this.textureContentsMap.get(par1Str);

    if (var3 != null) {
      return var3;
    } else {
      try {
        Object var4 = null;
        int[] var7;

        if (par1Str.startsWith("##")) {
          var7 =
              this.getImageContentsAndAllocate(
                  this.unwrapImageByColumns(
                      this.readTextureImage(var2.getResourceAsStream(par1Str.substring(2)))));
        } else if (par1Str.startsWith("%clamp%")) {
          this.clampTexture = true;
          var7 =
              this.getImageContentsAndAllocate(
                  this.readTextureImage(var2.getResourceAsStream(par1Str.substring(7))));
          this.clampTexture = false;
        } else if (par1Str.startsWith("%blur%")) {
          this.blurTexture = true;
          this.clampTexture = true;
          var7 =
              this.getImageContentsAndAllocate(
                  this.readTextureImage(var2.getResourceAsStream(par1Str.substring(6))));
          this.clampTexture = false;
          this.blurTexture = false;
        } else {
          InputStream var8 = var2.getResourceAsStream(par1Str);

          if (var8 == null) {
            var7 = this.getImageContentsAndAllocate(this.missingTextureImage);
          } else {
            var7 = this.getImageContentsAndAllocate(this.readTextureImage(var8));
          }
        }

        this.textureContentsMap.put(par1Str, var7);
        return var7;
      } catch (IOException var6) {
        var6.printStackTrace();
        int[] var5 = this.getImageContentsAndAllocate(this.missingTextureImage);
        this.textureContentsMap.put(par1Str, var5);
        return var5;
      }
    }
  }
 /**
  * Sets the new TexturePack to be used, returning true if it has actually changed, false if
  * nothing changed.
  */
 public boolean setTexturePack(TexturePackBase par1TexturePackBase) {
   if (par1TexturePackBase == this.selectedTexturePack) {
     return false;
   } else {
     this.field_77315_h = false;
     this.selectedTexturePack = par1TexturePackBase;
     this.mc.gameSettings.skin = par1TexturePackBase.func_77538_c();
     this.mc.gameSettings.saveOptions();
     return true;
   }
 }
  /** check the texture packs the client has installed */
  public void updateAvaliableTexturePacks() {
    ArrayList var1 = new ArrayList();
    this.selectedTexturePack = field_77314_a;
    var1.add(field_77314_a);
    Iterator var2 = this.func_77299_i().iterator();

    while (var2.hasNext()) {
      File var3 = (File) var2.next();
      String var4 = this.func_77302_a(var3);

      if (var4 != null) {
        Object var5 = (TexturePackBase) this.field_77308_f.get(var4);

        if (var5 == null) {
          var5 =
              var3.isDirectory()
                  ? new TexturePackFolder(var4, var3)
                  : new TexturePackCustom(var4, var3);
          this.field_77308_f.put(var4, var5);
        }

        if (((TexturePackBase) var5).func_77538_c().equals(this.mc.gameSettings.skin)) {
          this.selectedTexturePack = (TexturePackBase) var5;
        }

        var1.add(var5);
      }
    }

    this.availableTexturePacks.removeAll(var1);
    var2 = this.availableTexturePacks.iterator();

    while (var2.hasNext()) {
      TexturePackBase var6 = (TexturePackBase) var2.next();
      var6.func_77533_a(this.mc.renderEngine);
      this.field_77308_f.remove(var6.func_77536_b());
    }

    this.availableTexturePacks = var1;
  }
  public int getTexture(String par1Str) {
    Integer var2 = (Integer) this.textureMap.get(par1Str);

    if (var2 != null) {
      return var2.intValue();
    } else {
      TexturePackBase var6 = this.texturePack.getSelectedTexturePack();

      try {
        this.singleIntBuffer.clear();
        GLAllocation.generateTextureNames(this.singleIntBuffer);
        int var3 = this.singleIntBuffer.get(0);

        if (par1Str.startsWith("##")) {
          this.setupTexture(
              this.unwrapImageByColumns(
                  this.readTextureImage(var6.getResourceAsStream(par1Str.substring(2)))),
              var3);
        } else if (par1Str.startsWith("%clamp%")) {
          this.clampTexture = true;
          this.setupTexture(
              this.readTextureImage(var6.getResourceAsStream(par1Str.substring(7))), var3);
          this.clampTexture = false;
        } else if (par1Str.startsWith("%blur%")) {
          this.blurTexture = true;
          this.setupTexture(
              this.readTextureImage(var6.getResourceAsStream(par1Str.substring(6))), var3);
          this.blurTexture = false;
        } else if (par1Str.startsWith("%blurclamp%")) {
          this.blurTexture = true;
          this.clampTexture = true;
          this.setupTexture(
              this.readTextureImage(var6.getResourceAsStream(par1Str.substring(11))), var3);
          this.blurTexture = false;
          this.clampTexture = false;
        } else {
          InputStream var7 = var6.getResourceAsStream(par1Str);

          if (var7 == null) {
            this.setupTexture(this.missingTextureImage, var3);
          } else {
            this.setupTexture(this.readTextureImage(var7), var3);
          }
        }

        this.textureMap.put(par1Str, Integer.valueOf(var3));
        return var3;
      } catch (Exception var5) {
        var5.printStackTrace();
        GLAllocation.generateTextureNames(this.singleIntBuffer);
        int var4 = this.singleIntBuffer.get(0);
        this.setupTexture(this.missingTextureImage, var4);
        this.textureMap.put(par1Str, Integer.valueOf(var4));
        return var4;
      }
    }
  }
 protected void func_77214_a(
     int p_77214_1_, int p_77214_2_, int p_77214_3_, int p_77214_4_, Tessellator p_77214_5_) {
   TexturePackBase texturepackbase =
       (TexturePackBase)
           GuiTexturePacks.func_73953_j(field_77270_a)
               .field_71418_C
               .func_77293_d()
               .get(p_77214_1_);
   texturepackbase.func_77535_b(GuiTexturePacks.func_73961_k(field_77270_a).field_71446_o);
   GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
   p_77214_5_.func_78382_b();
   p_77214_5_.func_78378_d(0xffffff);
   p_77214_5_.func_78374_a(p_77214_2_, p_77214_3_ + p_77214_4_, 0.0D, 0.0D, 1.0D);
   p_77214_5_.func_78374_a(p_77214_2_ + 32, p_77214_3_ + p_77214_4_, 0.0D, 1.0D, 1.0D);
   p_77214_5_.func_78374_a(p_77214_2_ + 32, p_77214_3_, 0.0D, 1.0D, 0.0D);
   p_77214_5_.func_78374_a(p_77214_2_, p_77214_3_, 0.0D, 0.0D, 0.0D);
   p_77214_5_.func_78381_a();
   field_77270_a.func_73731_b(
       GuiTexturePacks.func_73960_l(field_77270_a),
       texturepackbase.func_77538_c(),
       p_77214_2_ + 32 + 2,
       p_77214_3_ + 1,
       0xffffff);
   field_77270_a.func_73731_b(
       GuiTexturePacks.func_73963_m(field_77270_a),
       texturepackbase.func_77531_d(),
       p_77214_2_ + 32 + 2,
       p_77214_3_ + 12,
       0x808080);
   field_77270_a.func_73731_b(
       GuiTexturePacks.func_73954_n(field_77270_a),
       texturepackbase.func_77537_e(),
       p_77214_2_ + 32 + 2,
       p_77214_3_ + 12 + 10,
       0x808080);
 }
  /**
   * Call setupTexture on all currently-loaded textures again to account for changes in rendering
   * options
   */
  public void refreshTextures() {
    TexturePackBase var1 = this.texturePack.getSelectedTexturePack();
    Iterator var2 = this.textureNameToImageMap.getKeySet().iterator();
    BufferedImage var4;

    while (var2.hasNext()) {
      int var3 = ((Integer) var2.next()).intValue();
      var4 = (BufferedImage) this.textureNameToImageMap.lookup(var3);
      this.setupTexture(var4, var3);
    }

    ThreadDownloadImageData var8;

    for (var2 = this.urlToImageDataMap.values().iterator();
        var2.hasNext();
        var8.textureSetupComplete = false) {
      var8 = (ThreadDownloadImageData) var2.next();
    }

    var2 = this.textureMap.keySet().iterator();
    String var9;

    while (var2.hasNext()) {
      var9 = (String) var2.next();

      try {
        if (var9.startsWith("##")) {
          var4 =
              this.unwrapImageByColumns(
                  this.readTextureImage(var1.getResourceAsStream(var9.substring(2))));
        } else if (var9.startsWith("%clamp%")) {
          this.clampTexture = true;
          var4 = this.readTextureImage(var1.getResourceAsStream(var9.substring(7)));
        } else if (var9.startsWith("%blur%")) {
          this.blurTexture = true;
          var4 = this.readTextureImage(var1.getResourceAsStream(var9.substring(6)));
        } else if (var9.startsWith("%blurclamp%")) {
          this.blurTexture = true;
          this.clampTexture = true;
          var4 = this.readTextureImage(var1.getResourceAsStream(var9.substring(11)));
        } else {
          var4 = this.readTextureImage(var1.getResourceAsStream(var9));
        }

        int var5 = ((Integer) this.textureMap.get(var9)).intValue();
        this.setupTexture(var4, var5);
        this.blurTexture = false;
        this.clampTexture = false;
      } catch (IOException var7) {
        var7.printStackTrace();
      }
    }

    var2 = this.textureContentsMap.keySet().iterator();

    while (var2.hasNext()) {
      var9 = (String) var2.next();

      try {
        if (var9.startsWith("##")) {
          var4 =
              this.unwrapImageByColumns(
                  this.readTextureImage(var1.getResourceAsStream(var9.substring(2))));
        } else if (var9.startsWith("%clamp%")) {
          this.clampTexture = true;
          var4 = this.readTextureImage(var1.getResourceAsStream(var9.substring(7)));
        } else if (var9.startsWith("%blur%")) {
          this.blurTexture = true;
          var4 = this.readTextureImage(var1.getResourceAsStream(var9.substring(6)));
        } else {
          var4 = this.readTextureImage(var1.getResourceAsStream(var9));
        }

        this.getImageContents(var4, (int[]) this.textureContentsMap.get(var9));
        this.blurTexture = false;
        this.clampTexture = false;
      } catch (IOException var6) {
        var6.printStackTrace();
      }
    }
  }