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"); } }
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); }