public void Run() { reader = new ZipReader(); reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Classic; reader.ProcessZipEntry = ProcessZipEntry_Classic; string texDir = Path.Combine(Program.AppDirectory, "texpacks"); string path = Path.Combine(texDir, "default.zip"); using (Stream srcClassic = new MemoryStream(jarClassic), srcModern = new MemoryStream(jar162), dst = new FileStream(path, FileMode.Create, FileAccess.Write)) { writer = new ZipWriter(dst); reader.Extract(srcClassic); // Grab animations and snow animBitmap = new Bitmap(1024, 64, PixelFormat.Format32bppArgb); reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Modern; reader.ProcessZipEntry = ProcessZipEntry_Modern; reader.Extract(srcModern); writer.WriteNewImage(animBitmap, "animations.png"); writer.WriteNewString(animationsTxt, "animations.txt"); using (Bitmap guiBitmap = new Bitmap(new MemoryStream(pngGuiPatch))) { writer.WriteNewImage(guiBitmap, "gui.png"); } animBitmap.Dispose(); writer.WriteCentralDirectoryRecords(); } }
public void Run() { reader = new ZipReader(); reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Classic; reader.ProcessZipEntry = ProcessZipEntry_Classic; string texDir = Path.Combine( Program.AppDirectory, "texpacks" ); string path = Path.Combine( texDir, "default.zip" ); using( Stream srcClassic = new MemoryStream( jarClassic ), srcModern = new MemoryStream( jar162 ), dst = new FileStream( path, FileMode.Create, FileAccess.Write ) ) { writer = new ZipWriter( dst ); reader.Extract( srcClassic ); // Grab animations and snow animBitmap = new Bitmap( 1024, 64, PixelFormat.Format32bppArgb ); reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Modern; reader.ProcessZipEntry = ProcessZipEntry_Modern; reader.Extract( srcModern ); writer.WriteNewImage( animBitmap, "animations.png" ); writer.WriteNewString( animationsTxt, "animations.txt" ); using( Bitmap guiBitmap = new Bitmap( new MemoryStream( pngGuiPatch ) ) ) { writer.WriteNewImage( guiBitmap, "gui.png" ); } animBitmap.Dispose(); writer.WriteCentralDirectoryRecords(); } }
void ProcessZipEntry_Classic(string filename, byte[] data, ZipEntry entry) { if (writer.entries == null) { writer.entries = new ZipEntry[reader.entries.Length]; } if (filename != "terrain.png") { int lastSlash = filename.LastIndexOf('/'); if (lastSlash >= 0) { entry.Filename = filename.Substring(lastSlash + 1); } if (entry.Filename == "gui.png") { entry.Filename = "gui_classic.png"; } writer.WriteZipEntry(entry, data); return; } using (Bitmap dstBitmap = new Bitmap(new MemoryStream(data)), maskBitmap = new Bitmap(new MemoryStream(pngTerrainPatch))) { PatchImage(dstBitmap, maskBitmap); writer.WriteNewImage(dstBitmap, "terrain.png"); } }
public void Run( MainForm form ) { using( WebClient client = new GZipWebClient() ) { WebRequest.DefaultWebProxy = null; int i = 0; DownloadData( classicJarUri, client, "classic.jar", form, ref i ); DownloadData( modernJarUri, client, "1.6.2.jar", form, ref i ); DownloadData( terrainPatchUri, client, "terrain-patch.png", form, ref i ); } reader = new ZipReader(); reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Classic; reader.ProcessZipEntry = ProcessZipEntry_Classic; using( FileStream srcClassic = File.OpenRead( "classic.jar" ), srcModern = File.OpenRead( "1.6.2.jar" ), dst = new FileStream( "default.zip", FileMode.Create, FileAccess.Write ) ) { writer = new ZipWriter( dst ); reader.Extract( srcClassic ); // Grab animations and snow animBitmap = new Bitmap( 1024, 64, PixelFormat.Format32bppArgb ); reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Modern; reader.ProcessZipEntry = ProcessZipEntry_Modern; reader.Extract( srcModern ); writer.WriteNewImage( animBitmap, "animations.png" ); writer.WriteNewString( animationsTxt, "animations.txt" ); animBitmap.Dispose(); writer.WriteCentralDirectoryRecords(); } if( !File.Exists( "terrain-patched.png" ) ) File.Move( "terrain-patch.png", "terrain-patched.png" ); }