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.Linq;
using System.Drawing;
using System.Reflection;
using UndertaleModLib.Models;
using UndertaleModLib.Util;
using UndertaleModLib.Decompiler;
@ -507,25 +508,25 @@ void ExportProjectFile()
new XElement("assets")
);
WriteIndexes<UndertaleSound>("sounds", "sound", Data.Sounds, "sound", "sound\\" + i.Name.Content, gmx.Element("assets"));
WriteIndexes<UndertaleSprite>("sprites", "sprites", Data.Sprites, "sprite", "sprites\\" + i.Name.Content, gmx.Element("assets"));
WriteIndexes<UndertaleBackground>("backgrounds", "background", Data.Backgrounds, "background", "background\\" + i.Name.Content, gmx.Element("assets"));
WriteIndexes<UndertaleScript>("scripts", "scripts", Data.Scripts, "script", "scripts\\" + i.Name.Content + ".gml", gmx.Element("assets"));
WriteIndexes<UndertaleFont>("fonts", "fonts", Data.Fonts, "font", "fonts\\" + i.Name.Content, gmx.Element("assets"));
WriteIndexes<UndertaleGameObject>("objects", "objects", Data.GameObjects, "object", "objects\\" + i.Name.Content, gmx.Element("assets"));
WriteIndexes<UndertaleRoom>("rooms", "rooms", Data.Rooms, "room", "rooms\\" + i.Name.Content, gmx.Element("assets"));
WriteIndexes<UndertaleSound>(gmx.Element("assets"), "sounds", "sound", Data.Sounds, "sound", "sound\\");
WriteIndexes<UndertaleSprite>(gmx.Element("assets"), "sprites", "sprites", Data.Sprites, "sprite", "sprites\\");
WriteIndexes<UndertaleBackground>(gmx.Element("assets"), "backgrounds", "background", Data.Backgrounds, "background", "background\\");
WriteIndexes<UndertaleScript>(gmx.Element("assets"), "scripts", "scripts", Data.Scripts, "script", "scripts\\", ".gml");
WriteIndexes<UndertaleFont>(gmx.Element("assets"), "fonts", "fonts", Data.Fonts, "font", "fonts\\");
WriteIndexes<UndertaleGameObject>(gmx.Element("assets"), "objects", "objects", Data.GameObjects, "object", "objects\\");
WriteIndexes<UndertaleRoom>(gmx.Element("assets"), "rooms", "rooms", Data.Rooms, "room", "rooms\\");
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(
new XAttribute(elementName, attributeName)
var datasNode = new XElement(elementName,
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);
}
rootNode.Add(datasNode);