001 package net.minecraft.client.texturepacks; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import java.io.File; 006 import java.io.IOException; 007 import java.io.InputStream; 008 import java.util.zip.ZipEntry; 009 import java.util.zip.ZipFile; 010 import net.minecraft.client.renderer.RenderEngine; 011 012 @SideOnly(Side.CLIENT) 013 public class TexturePackCustom extends TexturePackImplementation 014 { 015 /** ZipFile object used to access the texture pack file's contents. */ 016 private ZipFile texturePackZipFile; 017 018 public TexturePackCustom(String par1Str, File par2File) 019 { 020 super(par1Str, par2File, par2File.getName()); 021 } 022 023 /** 024 * Delete the OpenGL texture id of the pack's thumbnail image, and close the zip file in case of TexturePackCustom. 025 */ 026 public void deleteTexturePack(RenderEngine par1RenderEngine) 027 { 028 super.deleteTexturePack(par1RenderEngine); 029 030 try 031 { 032 if (this.texturePackZipFile != null) 033 { 034 this.texturePackZipFile.close(); 035 } 036 } 037 catch (IOException var3) 038 { 039 ; 040 } 041 042 this.texturePackZipFile = null; 043 } 044 045 /** 046 * Gives a texture resource as InputStream. 047 */ 048 public InputStream getResourceAsStream(String par1Str) 049 { 050 this.openTexturePackFile(); 051 052 try 053 { 054 ZipEntry var2 = this.texturePackZipFile.getEntry(par1Str.substring(1)); 055 056 if (var2 != null) 057 { 058 return this.texturePackZipFile.getInputStream(var2); 059 } 060 } 061 catch (Exception var3) 062 { 063 ; 064 } 065 066 return super.getResourceAsStream(par1Str); 067 } 068 069 /** 070 * Open the texture pack's file and initialize texturePackZipFile 071 */ 072 private void openTexturePackFile() 073 { 074 if (this.texturePackZipFile == null) 075 { 076 try 077 { 078 this.texturePackZipFile = new ZipFile(this.texturePackFile); 079 } 080 catch (IOException var2) 081 { 082 ; 083 } 084 } 085 } 086 }