public static XmlDocument CreateMaterialXml(MeleeRootNode rootNode) { XmlDocument doc = new XmlDocument(); XmlNode mainNode = doc.CreateElement("DAT"); doc.AppendChild(mainNode); DatDOBJ[] dOBJs = rootNode.Root.GetDataObjects(); for (int i = 0; i < dOBJs.Length; i++) { DatDOBJ d = dOBJs[i]; string name = $"DataObject{ i }"; XmlNode dobjNode = doc.CreateElement(name); AppendAttributes(doc, dobjNode, d); XmlNode texturesListNode = doc.CreateElement("Textures"); foreach (var tex in d.Material.Textures) { XmlNode texNode = doc.CreateElement("Texture"); AppendTexAttributes(doc, tex, texNode); texturesListNode.AppendChild(texNode); } dobjNode.AppendChild(texturesListNode); mainNode.AppendChild(dobjNode); } return(doc); }
private static void SaveMeleeDatXml(string sourceDir, string outputDir, string file) { MeleeDataNode meleeDataNode = new MeleeDataNode(file); if (meleeDataNode.DatFile.Roots.Length == 0) return; var rootNode = new MeleeRootNode(meleeDataNode.DatFile.Roots[0]); var doc = DatMaterialXml.CreateMaterialXml(rootNode); string xmlName = Path.GetFileNameWithoutExtension(file); string outputFileName = $"{ outputDir }\\{ xmlName }.xml"; doc.Save(outputFileName); }