예제 #1
0
        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);
        }
예제 #2
0
        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);
        }