// clears data dictionary and recreates it from the list of data packs private void ConstructData() { // clear the data dictionary if (policyData == null) { policyData = new Dictionary <string, SocialPolicy>(); } else { policyData.Clear(); } // fill it with technologies from all the data packs foreach (SocialPolicyDataPack dp in dataPacks) { foreach (SocialPolicy p in dp.SocialPolicies) { p.Name = SocialPolicy.FormatName(p.ID); policyData.Add(p.ID, p); } foreach (SocialPolicyTree t in dp.SocialPolicyTrees) { t.Name = SocialPolicyTree.FormatName(t.ID); policyTreeData.Add(t.ID, t); } } }
/// <summary> /// Adds a data pack to the manager /// </summary> /// <param name="stream"></param> public void AddDataPack(Stream stream) { if (stream == null) { ConsoleManager.Instance.WriteLine("Missing social policy data", MsgType.ServerWarning); return; } // load data pack SocialPolicyDataPack pack = SerializationHelper.XmlDeserialize <SocialPolicyDataPack>(stream); dataPacks.Add(pack); foreach (SocialPolicy p in pack.SocialPolicies) { p.Name = SocialPolicy.FormatName(p.ID); policyData.Add(p.ID, p); } foreach (SocialPolicyTree t in pack.SocialPolicyTrees) { t.Name = SocialPolicyTree.FormatName(t.ID); policyTreeData.Add(t.ID, t); } }