public override OutputFiles Save() { // Do all the calculation required to write to an scml, including building // an in-memory XML tree PrepareFile(); AddFolderInfo(); AddEntityInfo(); AddAnimInfo(); // Finally, output to a file var files = new OutputFiles(); var scmlStream = files[$"{BuildData.Name}.scml"] = new MemoryStream(); // Output is encoded in ASCII since Klei's binary file format only supports ASCII // so this should be a more genuine representation than a Unicode output var writer = new XmlTextWriter(scmlStream, Encoding.ASCII); writer.Formatting = Formatting.Indented; Scml.WriteTo(writer); writer.Flush(); // Add sprites to output files foreach (var sprite in Sprites) { var stream = new MemoryStream(); sprite.Bitmap.Save(stream, ImageFormat.Png); var outputName = $"{sprite.Name}.png"; files[outputName] = stream; } return(files); }
public override OutputFiles Save() { var files = new OutputFiles(); var build = files[$"{BuildData.Name}_build.bytes"] = new MemoryStream(); WriteBuild(build); var anim = files[$"{BuildData.Name}_anim.bytes"] = new MemoryStream(); WriteAnim(anim); var png = files[$"{BuildData.Name}.png"] = new MemoryStream(); spritesheet.Save(png, ImageFormat.Png); return(files); }