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();
            }
        }
Esempio n. 2
0
 void ExtractClassic()
 {
     if (jarClassic == null)
     {
         return;
     }
     using (Stream src = new MemoryStream(jarClassic)) {
         reader.SelectZipEntry  = SelectZipEntry_Classic;
         reader.ProcessZipEntry = ProcessZipEntry_Classic;
         reader.Extract(src);
     }
 }
Esempio n. 3
0
        void ExtractExisting(string path)
        {
            if (!File.Exists(path))
            {
                return;
            }

            using (Stream src = new FileStream(path, FileMode.Open, FileAccess.Read)) {
                reader.ProcessZipEntry = ExtractExisting;
                reader.Extract(src);
            }
        }
Esempio n. 4
0
        internal void TryLoadTexturePack()
        {
            Options.Load();
            LauncherSkin.LoadFromOptions();
            ClassicMode = Options.GetBool("mode-classic", false);
            string texDir  = Path.Combine(Program.AppDirectory, "texpacks");
            string texPack = Options.Get(OptionsKey.DefaultTexturePack) ?? "default.zip";

            texPack = Path.Combine(texDir, texPack);

            if (!File.Exists(texPack))
            {
                texPack = Path.Combine(texDir, "default.zip");
            }
            if (!File.Exists(texPack))
            {
                return;
            }

            using (Stream fs = new FileStream(texPack, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                ZipReader reader = new ZipReader();

                reader.ShouldProcessZipEntry = (f) => f == "default.png" || f == "terrain.png";
                reader.ProcessZipEntry       = ProcessZipEntry;
                reader.Extract(fs);
            }
        }
Esempio n. 5
0
 public static void ExtractUpdate(byte[] zipData)
 {
     Platform.DirectoryCreate("CS_Update");
     using (MemoryStream stream = new MemoryStream(zipData)) {
         ZipReader reader = new ZipReader();
         reader.ProcessZipEntry = ProcessZipEntry;
         reader.Extract(stream);
     }
 }
 void ExtractTexturePack(string texPack)
 {
     using (Stream fs = new FileStream(texPack, FileMode.Open, FileAccess.Read, FileShare.Read)) {
         ZipReader reader = new ZipReader();
         reader.SelectZipEntry  = SelectZipEntry;
         reader.ProcessZipEntry = ProcessZipEntry;
         reader.Extract(fs);
     }
 }
 void ExtractTexturePack(string texPack)
 {
     using (Stream fs = new FileStream(texPack, FileMode.Open, FileAccess.Read, FileShare.Read)) {
         ZipReader reader = new ZipReader();
         reader.ShouldProcessZipEntry = (f) => f == "default.png" || f == "terrain.png";
         reader.ProcessZipEntry       = ProcessZipEntry;
         reader.Extract(fs);
     }
 }
Esempio n. 8
0
 void ExtractTexturePack(string relPath)
 {
     using (Stream fs = Platform.FileOpen(relPath)) {
         ZipReader reader = new ZipReader();
         reader.SelectZipEntry  = SelectZipEntry;
         reader.ProcessZipEntry = ProcessZipEntry;
         reader.Extract(fs);
     }
 }
Esempio n. 9
0
        void CheckDefaultZip(string path)
        {
            ZipReader reader = new ZipReader();

            reader.ShouldProcessZipEntry = ShouldProcessZipEntry;
            reader.ProcessZipEntry       = ProcessZipEntry;

            using (Stream src = new FileStream(path, FileMode.Open, FileAccess.Read))
                reader.Extract(src);
        }
Esempio n. 10
0
        void CheckDefaultZip(string relPath)
        {
            ZipReader reader = new ZipReader();

            reader.SelectZipEntry  = SelectZipEntry;
            reader.ProcessZipEntry = ProcessZipEntry;

            using (Stream src = Platform.FileOpen(relPath)) {
                reader.Extract(src);
            }
        }
Esempio n. 11
0
        static void MakeUpdatesFolder(byte[] zipData)
        {
            using (MemoryStream stream = new MemoryStream(zipData)) {
                ZipReader reader = new ZipReader();
                Directory.CreateDirectory("CS_Update");

                reader.ShouldProcessZipEntry = (f) => true;
                reader.ProcessZipEntry       = ProcessZipEntry;
                reader.Extract(stream);
            }
        }
Esempio n. 12
0
        static void MakeUpdatesFolder(byte[] zipData)
        {
            using (MemoryStream stream = new MemoryStream(zipData)) {
                ZipReader reader = new ZipReader();
                string    path   = Path.Combine(Program.AppDirectory, "CS_Update");
                Directory.CreateDirectory(path);

                reader.ProcessZipEntry = ProcessZipEntry;
                reader.Extract(stream);
            }
        }
        void CheckClassicGuiPng(string path)
        {
            ZipReader reader = new ZipReader();

            reader.ShouldProcessZipEntry = ShouldProcessZipEntry;
            reader.ProcessZipEntry       = ProcessZipEntry;

            using (Stream src = new FileStream(path, FileMode.Open, FileAccess.Read))
                reader.Extract(src);
            if (!classicGuiPngExists)
            {
                defaultZipExists = false;
            }
        }
Esempio n. 14
0
        public void Run()
        {
            reader = new ZipReader();
            reader.SelectZipEntry  = SelectZipEntry_Classic;
            reader.ProcessZipEntry = ProcessZipEntry_Classic;
            string defPath = Path.Combine("texpacks", "default.zip");

            if (Platform.FileExists(defPath))
            {
                using (Stream src = Platform.FileOpen(defPath)) {
                    reader.ProcessZipEntry = ExtractExisting;
                    reader.Extract(src);
                }
            }

            using (Stream dst = Platform.FileCreate(defPath)) {
                writer         = new ZipWriter(dst);
                writer.entries = new ZipEntry[100];
                for (int i = 0; i < entries.Count; i++)
                {
                    writer.WriteZipEntry(entries[i], datas[i]);
                }

                ExtractClassic();
                ExtractModern();
                if (pngGuiPatch != null)
                {
                    using (Bitmap gui = Platform.ReadBmp(drawer, pngGuiPatch))
                        writer.WriteNewImage(gui, "gui.png");
                }
                if (patchedTerrain)
                {
                    writer.WriteNewImage(terrainBmp, "terrain.png");
                }
                writer.WriteCentralDirectoryRecords();
            }
        }