Update ExportToProject.csx

This commit is contained in:
cubeww 2019-11-03 00:10:21 +08:00
parent e6140c935c
commit c409bb7572

View file

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Xml; using System.Xml;
using System.Xml.Linq; using System.Xml.Linq;
using System.Drawing; using System.Drawing;
using System.Reflection;
using UndertaleModLib.Models; using UndertaleModLib.Models;
using UndertaleModLib.Util; using UndertaleModLib.Util;
using UndertaleModLib.Decompiler; using UndertaleModLib.Decompiler;
@ -507,25 +508,25 @@ void ExportProjectFile()
new XElement("assets") new XElement("assets")
); );
WriteIndexes<UndertaleSound>("sounds", "sound", Data.Sounds, "sound", "sound\\" + i.Name.Content, gmx.Element("assets")); WriteIndexes<UndertaleSound>(gmx.Element("assets"), "sounds", "sound", Data.Sounds, "sound", "sound\\");
WriteIndexes<UndertaleSprite>("sprites", "sprites", Data.Sprites, "sprite", "sprites\\" + i.Name.Content, gmx.Element("assets")); WriteIndexes<UndertaleSprite>(gmx.Element("assets"), "sprites", "sprites", Data.Sprites, "sprite", "sprites\\");
WriteIndexes<UndertaleBackground>("backgrounds", "background", Data.Backgrounds, "background", "background\\" + i.Name.Content, gmx.Element("assets")); WriteIndexes<UndertaleBackground>(gmx.Element("assets"), "backgrounds", "background", Data.Backgrounds, "background", "background\\");
WriteIndexes<UndertaleScript>("scripts", "scripts", Data.Scripts, "script", "scripts\\" + i.Name.Content + ".gml", gmx.Element("assets")); WriteIndexes<UndertaleScript>(gmx.Element("assets"), "scripts", "scripts", Data.Scripts, "script", "scripts\\", ".gml");
WriteIndexes<UndertaleFont>("fonts", "fonts", Data.Fonts, "font", "fonts\\" + i.Name.Content, gmx.Element("assets")); WriteIndexes<UndertaleFont>(gmx.Element("assets"), "fonts", "fonts", Data.Fonts, "font", "fonts\\");
WriteIndexes<UndertaleGameObject>("objects", "objects", Data.GameObjects, "object", "objects\\" + i.Name.Content, gmx.Element("assets")); WriteIndexes<UndertaleGameObject>(gmx.Element("assets"), "objects", "objects", Data.GameObjects, "object", "objects\\");
WriteIndexes<UndertaleRoom>("rooms", "rooms", Data.Rooms, "room", "rooms\\" + i.Name.Content, gmx.Element("assets")); WriteIndexes<UndertaleRoom>(gmx.Element("assets"), "rooms", "rooms", Data.Rooms, "room", "rooms\\");
File.WriteAllText(projFolder + "Export_Project.project.gmx", gmx.ToString()); File.WriteAllText(projFolder + "Export_Project.project.gmx", gmx.ToString());
} }
void WriteIndexes<T>(string elementName, string attributeName, List<T> dataList, string oneName, string fileName, XElement rootNode) void WriteIndexes<T>(XElement rootNode, string elementName, string attributeName, IList<T> dataList, string oneName, string resourcePath, string fileExtension = "")
{ {
var datasNode = new XElement( var datasNode = new XElement(elementName,
new XAttribute(elementName, attributeName) new XAttribute("name", attributeName)
); );
foreach (var i in dataList) foreach (UndertaleNamedResource i in dataList)
{ {
var dataNode = new XElement(oneName, fileName); var dataNode = new XElement(oneName, resourcePath + i.Name.Content + fileExtension);
datasNode.Add(dataNode); datasNode.Add(dataNode);
} }
rootNode.Add(datasNode); rootNode.Add(datasNode);