/// <summary> /// Deserialization constructor from datafiles. /// </summary> /// <param name="src"></param> /// <param name="skillArrayIndex"></param> internal StaticSkillGroup(SerializableSkillGroup src, ref int skillArrayIndex) { m_ID = src.ID; m_name = src.Name; foreach (var srcSkill in src.Skills) { m_items[srcSkill.ID] = new StaticSkill(this, srcSkill, skillArrayIndex); skillArrayIndex++; } }
/// <summary> /// Generate the skills datafile. /// </summary> internal static void GenerateDatafile() { Stopwatch stopwatch = Stopwatch.StartNew(); Util.ResetCounters(); Console.WriteLine(); Console.Write(@"Generating skills datafile... "); // Export skill groups List <SerializableSkillGroup> listOfSkillGroups = new List <SerializableSkillGroup>(); foreach (InvGroups group in Database.InvGroupsTable.Where( x => x.CategoryID == DBConstants.SkillCategoryID && x.ID != DBConstants.FakeSkillsGroupID).OrderBy(x => x.Name)) { SerializableSkillGroup skillGroup = new SerializableSkillGroup { ID = group.ID, Name = group.Name, }; // Add skills in skill group skillGroup.Skills.AddRange(ExportSkillsInGroup(group).OrderBy(x => x.Name)); // Add skill group listOfSkillGroups.Add(skillGroup); } // Serialize SkillsDatafile datafile = new SkillsDatafile(); datafile.SkillGroups.AddRange(listOfSkillGroups); Util.DisplayEndTime(stopwatch); Util.SerializeXml(datafile, DatafileConstants.SkillsDatafile); }