Example #1
0
        /// <summary>
        /// Rename all trucks to include their mass in the name.
        /// </summary>
        public static void RenameTrucks(DirectoryInfo directory, GameLanguage language)
        {
            var directoryLocation = IOHelpers.NormalizeDirectory(directory.FullName);
            var strings           = GetStrings(directory, language, out var stringsMap, out var stringsLocation);

            Console.WriteLine("Processing trucks data.");
            var newTruckNames = new List <KeyValuePair <string, string> > ();
            var trucks        = Directory.EnumerateFiles(Path.Combine(directoryLocation, @"[media]\classes\trucks"), "*.xml");

            foreach (var truckXmlLocation in trucks)
            {
                var root       = XmlHelpers.ReadFragments(truckXmlLocation);
                var nameIdNode = root.Element("Truck")?.Element("GameData")?.Element("UiDesc")?.Attribute("UiName");
                var nameId     = nameIdNode?.Value;
                if (nameId == null)
                {
                    continue;
                }
                var originalId = GetOriginalId(nameId);
                var mass       = TruckHelpers.GetMass(root.Element("Truck"));
                if (mass < 100)
                {
                    continue;
                }

                var newId = GetNewId(originalId, truckXmlLocation[directoryLocation.Length..]);