public MonsterXmlResourceValidator(ContentFile file, GameResources resources, GameResources expansionResourcesUsed) : base(file, resources, expansionResourcesUsed) { }
/// <summary> /// Validates all fo the XML files. /// </summary> /// <param name="xmlFiles"></param> /// <param name="resources">An instance of <see cref="GameResources"/> containing all valid resources from the core game and optionally a mod.</param> /// <param name="expansionResourcesUsed">An instance of <see cref="GameResources"/> to which expansion resources found to be used will be added.</param> /// <returns></returns> public static List <XmlFileValidationErrorList> Validate(IEnumerable <ContentFile> xmlFiles, GameResources resources, GameResources expansionResourcesUsed = null) { List <XmlFileValidationErrorList> result = new List <XmlFileValidationErrorList>(); foreach (var file in xmlFiles) { try { XmlResourceValidator res = XmlResourceValidator.Create(file, resources, expansionResourcesUsed); result.Add(res.Validate()); } catch (XmlException ex) { result.Add(new XmlFileValidationErrorList(file.FullName, ex)); } } return(result); }
/// <summary> /// Factory method to create appropriate validator for the specified file. /// </summary> /// <param name="file"></param> /// <param name="resources">An instance of <see cref="GameResources"/> containing all valid resources from the core game and optionally a mod.</param> /// <param name="expansionResourcesUsed">An instance of <see cref="GameResources"/> to which expansion resources found to be used will be added.</param> /// <returns></returns> public static XmlResourceValidator Create(ContentFile file, GameResources resources, GameResources expansionResourcesUsed = null) { switch (file.Name.ToLower()) { case "craftdb.xml": return(new CraftXmlResourceValidator(file, resources, expansionResourcesUsed)); case "itemdb.xml": return(new ItemXmlResourceValidator(file, resources, expansionResourcesUsed)); case "mondb.xml": return(new MonsterXmlResourceValidator(file, resources, expansionResourcesUsed)); case "soundfx.xml": return(new SoundXmlResourceValidator(file, resources, expansionResourcesUsed)); case "spelldb.xml": return(new SpellXmlResourceValidator(file, resources, expansionResourcesUsed)); case "skilldb.xml": return(new SkillXmlResourceValidator(file, resources, expansionResourcesUsed)); case "rooms.xml": return(new RoomXmlResourceValidator(file, resources, expansionResourcesUsed)); case "encrustdb.xml": return(new EncrustXmlResourceValidator(file, resources, expansionResourcesUsed)); default: throw new InvalidOperationException("The specified file is not supported."); } }