From ec24e27ddecf51a71f594f811e1962aaf8b20eb0 Mon Sep 17 00:00:00 2001 From: cubeww <761397398@qq.com> Date: Sun, 3 Nov 2019 00:31:38 +0800 Subject: [PATCH] Update ExportToProject.csx --- ExportToProject.csx | 55 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/ExportToProject.csx b/ExportToProject.csx index 06d7d3a..680eecf 100644 --- a/ExportToProject.csx +++ b/ExportToProject.csx @@ -28,36 +28,42 @@ Directory.CreateDirectory(projFolder); // --------------- Start exporting --------------- +var resourceNum = 9; + // Export sprites -UpdateProgressBar(null, "Exporting sprites...", progress++, 8); +UpdateProgressBar(null, "Exporting sprites...", progress++, resourceNum); await ExportSprites(); // Export backgrounds -UpdateProgressBar(null, "Exporting backgrounds...", progress++, 8); +UpdateProgressBar(null, "Exporting backgrounds...", progress++, resourceNum); await ExportBackground(); // Export objects -UpdateProgressBar(null, "Exporting objects...", progress++, 8); +UpdateProgressBar(null, "Exporting objects...", progress++, resourceNum); await ExportGameObjects(); // Export rooms -UpdateProgressBar(null, "Exporting rooms...", progress++, 8); +UpdateProgressBar(null, "Exporting rooms...", progress++, resourceNum); await ExportRooms(); // Export sounds -UpdateProgressBar(null, "Exporting sounds...", progress++, 8); +UpdateProgressBar(null, "Exporting sounds...", progress++, resourceNum); await ExportSounds(); // Export scripts -UpdateProgressBar(null, "Exporting scripts...", progress++, 8); +UpdateProgressBar(null, "Exporting scripts...", progress++, resourceNum); await ExportScripts(); // Export fonts -UpdateProgressBar(null, "Exporting fonts...", progress++, 8); +UpdateProgressBar(null, "Exporting fonts...", progress++, resourceNum); await ExportFonts(); +// Export paths +UpdateProgressBar(null, "Exporting paths...", progress++, resourceNum); +await ExportPaths(); + // Generate project file -UpdateProgressBar(null, "Generating project file...", progress++, 8); +UpdateProgressBar(null, "Generating project file...", progress++, resourceNum); ExportProjectFile(); // --------------- Export completed --------------- @@ -499,6 +505,39 @@ void ExportFont(UndertaleFont font) worker.ExportAsPNG(font.Texture, projFolder + "/fonts/" + font.Name.Content + ".png"); } +// --------------- Export Paths --------------- +async Task ExportPaths() +{ + Directory.CreateDirectory(projFolder + "/paths"); + await Task.Run(() => Parallel.ForEach(Data.Paths, ExportPath)); +} +void ExportPath(UndertalePath path) +{ + // Save the path GMX + var gmx = new XDocument( + new XComment(gmxDeclaration), + new XElement("path", + new XElement("kind", "0"), + new XElement("close", BoolToString(path.IsClosed)), + new XElement("precision", path.Precision.ToString()), + new XElement("backroom", "-1"), + new XElement("hsnap", "16"), + new XElement("vsnap", "16"), + new XElement("points") + ) + ); + foreach (var i in path.Points) + { + var pointsNode = gmx.Element("path").Element("points"); + pointsNode.Add( + new XElement("point", $"{i.X.ToString()},{i.Y.ToString()},{i.Speed.ToString()}") + ); + } + + File.WriteAllText(projFolder + "/paths/" + path.Name.Content + ".path.gmx", gmx.ToString()); +} + + // --------------- Generate project file --------------- void ExportProjectFile() {