public IEnumerable <string> LookupSchemas() { var path = Path.Combine(Directory.GetCurrentDirectory(), "Schemas"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var files = Directory.EnumerateFiles(path, "*.xml"); if (files.Count() == 0) { Console.WriteLine("Getting the TF2 items schema..."); var schemaXML = TF2WebClient.GetSchema(); File.WriteAllText(Path.Combine(path, "440.xml"), schemaXML); var schema = TF2Schema.Deserialize(schemaXML); files = Directory.EnumerateFiles(path, "*.xml"); } return(files); }
public void Load(IEnumerable <string> files) { foreach (var file in files) { int id; if (!int.TryParse(Path.GetFileNameWithoutExtension(file), out id)) { return; } // Workaround schema deserialization problem. var text = File.ReadAllText(file) .Replace(@"<craft_class></craft_class>", String.Empty) .Replace(@"<craft_material_type></craft_material_type>", String.Empty); Console.WriteLine("Loading items from file {0}", Path.GetFileName(file)); var schema = TF2Schema.Deserialize(text); Cache[id] = schema; // Build id cache. BuildCache(schema); } }