Update ExportToProject.csx
This commit is contained in:
parent
ec24e27dde
commit
2cd7f68217
1 changed files with 54 additions and 1 deletions
|
@ -28,7 +28,7 @@ Directory.CreateDirectory(projFolder);
|
||||||
|
|
||||||
// --------------- Start exporting ---------------
|
// --------------- Start exporting ---------------
|
||||||
|
|
||||||
var resourceNum = 9;
|
var resourceNum = 10;
|
||||||
|
|
||||||
// Export sprites
|
// Export sprites
|
||||||
UpdateProgressBar(null, "Exporting sprites...", progress++, resourceNum);
|
UpdateProgressBar(null, "Exporting sprites...", progress++, resourceNum);
|
||||||
|
@ -62,6 +62,10 @@ await ExportFonts();
|
||||||
UpdateProgressBar(null, "Exporting paths...", progress++, resourceNum);
|
UpdateProgressBar(null, "Exporting paths...", progress++, resourceNum);
|
||||||
await ExportPaths();
|
await ExportPaths();
|
||||||
|
|
||||||
|
// Export timelines
|
||||||
|
UpdateProgressBar(null, "Exporting timelines...", progress++, resourceNum);
|
||||||
|
await ExportTimelines();
|
||||||
|
|
||||||
// Generate project file
|
// Generate project file
|
||||||
UpdateProgressBar(null, "Generating project file...", progress++, resourceNum);
|
UpdateProgressBar(null, "Generating project file...", progress++, resourceNum);
|
||||||
ExportProjectFile();
|
ExportProjectFile();
|
||||||
|
@ -537,6 +541,53 @@ void ExportPath(UndertalePath path)
|
||||||
File.WriteAllText(projFolder + "/paths/" + path.Name.Content + ".path.gmx", gmx.ToString());
|
File.WriteAllText(projFolder + "/paths/" + path.Name.Content + ".path.gmx", gmx.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------- Export Timelines ---------------
|
||||||
|
async Task ExportTimelines()
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(projFolder + "/timelines");
|
||||||
|
await Task.Run(() => Parallel.ForEach(Data.Timelines, ExportTimeline));
|
||||||
|
}
|
||||||
|
void ExportTimeline(UndertaleTimeline timeline)
|
||||||
|
{
|
||||||
|
// Save the timeline GMX
|
||||||
|
var gmx = new XDocument(
|
||||||
|
new XComment(gmxDeclaration),
|
||||||
|
new XElement("timeline")
|
||||||
|
);
|
||||||
|
foreach (var i in timeline.Moments)
|
||||||
|
{
|
||||||
|
var entryNode = new XElement("entry");
|
||||||
|
entryNode.Add(new XElement("step", i.Item1));
|
||||||
|
foreach (var j in i.Item2)
|
||||||
|
{
|
||||||
|
entryNode.Add(
|
||||||
|
new XElement("libid", j.LibID.ToString()),
|
||||||
|
new XElement("id", j.ID.ToString()),
|
||||||
|
new XElement("kind", j.Kind.ToString()),
|
||||||
|
new XElement("userelative", j.LibID.ToString()),
|
||||||
|
new XElement("libid", BoolToString(j.UseRelative)),
|
||||||
|
new XElement("isquestion", BoolToString(j.IsQuestion)),
|
||||||
|
new XElement("useapplyto", BoolToString(j.UseApplyTo)),
|
||||||
|
new XElement("exetype", j.ExeType.ToString()),
|
||||||
|
new XElement("functionname", j.ActionName.Content),
|
||||||
|
new XElement("codestring", ""),
|
||||||
|
new XElement("whoName", "self"),
|
||||||
|
new XElement("relative", BoolToString(j.Relative)),
|
||||||
|
new XElement("isnot", BoolToString(j.IsNot)),
|
||||||
|
new XElement("arguments",
|
||||||
|
new XElement("argument",
|
||||||
|
new XElement("kind", "1"),
|
||||||
|
new XElement("string", j.CodeId != null ? Decompiler.Decompile(j.CodeId, DECOMPILE_CONTEXT.Value) : "")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
gmx.Element("timeline").Add(entryNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
File.WriteAllText(projFolder + "/timelines/" + timeline.Name.Content + ".timeline.gmx", gmx.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// --------------- Generate project file ---------------
|
// --------------- Generate project file ---------------
|
||||||
void ExportProjectFile()
|
void ExportProjectFile()
|
||||||
|
@ -554,6 +605,8 @@ void ExportProjectFile()
|
||||||
WriteIndexes<UndertaleFont>(gmx.Element("assets"), "fonts", "fonts", Data.Fonts, "font", "fonts\\");
|
WriteIndexes<UndertaleFont>(gmx.Element("assets"), "fonts", "fonts", Data.Fonts, "font", "fonts\\");
|
||||||
WriteIndexes<UndertaleGameObject>(gmx.Element("assets"), "objects", "objects", Data.GameObjects, "object", "objects\\");
|
WriteIndexes<UndertaleGameObject>(gmx.Element("assets"), "objects", "objects", Data.GameObjects, "object", "objects\\");
|
||||||
WriteIndexes<UndertaleRoom>(gmx.Element("assets"), "rooms", "rooms", Data.Rooms, "room", "rooms\\");
|
WriteIndexes<UndertaleRoom>(gmx.Element("assets"), "rooms", "rooms", Data.Rooms, "room", "rooms\\");
|
||||||
|
WriteIndexes<UndertalePath>(gmx.Element("assets"), "paths", "paths", Data.Paths, "path", "paths\\");
|
||||||
|
WriteIndexes<UndertaleTimeline>(gmx.Element("assets"), "timelines", "timelines", Data.Timelines, "timeline", "timelines\\");
|
||||||
|
|
||||||
File.WriteAllText(projFolder + "Export_Project.project.gmx", gmx.ToString());
|
File.WriteAllText(projFolder + "Export_Project.project.gmx", gmx.ToString());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue