private static void DoTruckExtents(FileInfo targetXml) { var xml = XmlHelpers.ReadFragments(targetXml.FullName); var extents = TruckHelpers.GetExtents(xml.Element("Truck")); Console.WriteLine($"Extents: {(extents.minX, extents.minY, extents.minZ)} .. {(extents.maxX, extents.maxY, extents.maxZ)}"); }
private static int DoTruckCraneSocketAddTopCentral(FileInfo targetXml) { var xml = XmlHelpers.ReadFragments(targetXml.FullName); var truck = xml.Element("Truck"); var lastCraneSocket = truck.Element("GameData").Elements("CraneSocket").LastOrDefault(); if (lastCraneSocket == null) { Console.WriteLine("No existing crane sockets found!"); return(1); } var extents = TruckHelpers.GetExtents(truck); var pos = $"(0; {extents.maxY:0.###}; 0)"; Console.WriteLine($"{targetXml.Name}: adding new crane socket at {pos}"); var newCraneSocket = new XElement("CraneSocket", new XAttribute("Pos", pos)); lastCraneSocket.AddAfterSelf(newCraneSocket); lastCraneSocket.AddAfterSelf(new XText("\r\n\t\t")); XmlHelpers.WriteFragments(targetXml.FullName, xml.Nodes()); return(0); }