Beispiel #1
0
        public static void ExportFad(string name, string path, string outFolder)
        {
            // 1
            Node nodo = NodeFactory.FromFile(path); // BinaryFormat

            // 2
            IConverter <BinaryFormat, FAD.FAD> fadConverter = new FAD.BinaryFormat2Fad();
            Node nodoScript = nodo.Transform(fadConverter);

            // 3
            IConverter <FAD.FAD, NodeContainerFormat> containerConverter = new FAD.Fad2NodeContainer();
            Node nodoContainer = nodoScript.Transform(containerConverter);

            //4
            Console.WriteLine(@"Exporting " + name + @"...");
            if (!Directory.Exists(Path.GetFileNameWithoutExtension(path)))
            {
                Directory.CreateDirectory(Path.GetFileNameWithoutExtension(path) ?? throw new Exception("That's not supossed to throw a exception lol, please make a issue if you read this line."));
            }

            foreach (var child in Navigator.IterateNodes(nodoContainer))
            {
                if (child.Stream == null)
                {
                    continue;
                }

                string output = Path.Combine(outFolder + Path.DirectorySeparatorChar + child.Name);
                output = output.Remove(output.Length - 7);
                Node decompressedNode = child.Transform <YkcmpDecompression, BinaryFormat, BinaryFormat>();
                decompressedNode.Stream.WriteTo(output + ".YKCMP");
                ExportImage(output + ".YKCMP");
            }
        }
Beispiel #2
0
        public static void ImportFad(string name, string pathFolder, string pathBf, string outFile)
        {
            // 1
            Node nodo = NodeFactory.FromFile(pathBf); // BinaryFormat

            // 2
            IConverter <BinaryFormat, FAD.FAD> fadConverter = new FAD.BinaryFormat2Fad();
            Node nodoScript = nodo.Transform(fadConverter);

            string[] fileArray = Directory.GetFiles(pathFolder, "*.png");

            Array.Sort(fileArray);


            foreach (var image in fileArray)
            {
                ImportImage(image.Remove(image.Length - 4) + ".YKCMP", image);
                using BinaryFormat binaryFormat = new BinaryFormat(image.Remove(image.Length - 4) + "_new.YKCMP");
                BinaryFormat compressed = binaryFormat.ConvertWith <YkcmpCompression, BinaryFormat, BinaryFormat>();
                compressed.Stream.WriteTo(image.Remove(image.Length - 4) + ".YKCMPC");
            }

            Node nodeFolder = NodeFactory.CreateContainer("Ykcmp");

            string[] ykcmpFileArray = Directory.GetFiles(pathFolder, "*.YKCMPC");
            Array.Sort(ykcmpFileArray);

            foreach (var ykcmp in ykcmpFileArray)
            {
                Node nodoYkcmp = NodeFactory.FromFile(ykcmp);
                nodeFolder.Add(nodoYkcmp);
            }

            // 3
            IConverter <FAD.FAD, BinaryFormat> binaryFormatConverter = new FAD.Fad2BinaryFormat
            {
                Container = nodeFolder
            };
            Node nodoBf = nodoScript.Transform(binaryFormatConverter);

            //4
            Console.WriteLine(@"Importing " + name + @"...");
            nodoBf.Stream.WriteTo(outFile);
        }