private void RegisterCitizenConfig(CitizenAssetFolderRuleXml config, CitizenInfo info) { if (config.AssetName?.Split(new char[] { '.' }, 2)?[1] == info.name?.Split(new char[] { '.' }, 2)?[1]) { config.AssetName = info.name; config.Source = RuleSource.ASSET; m_colorConfigDataCitizens[info.name] = config; } }
private void OnExportLocal() => SafeObtain((ref CitizenCityDataRuleXml x) => { FileUtils.EnsureFolderCreation(ACEController.FOLDER_PATH_GENERAL_CONFIG); string filename = Path.Combine(ACEController.FOLDER_PATH_GENERAL_CONFIG, ACELoadedDataContainer.DEFAULT_XML_NAME_CITIZEN); string currentDataSerial = GetRuleSerialized(); CitizenAssetFolderRuleXml asAssetRule = XmlUtils.DefaultXmlDeserialize <CitizenAssetFolderRuleXml>(currentDataSerial); ACERulesetContainer <CitizenAssetFolderRuleXml> container = File.Exists(filename) ? XmlUtils.DefaultXmlDeserialize <ACERulesetContainer <CitizenAssetFolderRuleXml> >(File.ReadAllText(filename)) : new ACERulesetContainer <CitizenAssetFolderRuleXml>(); container.m_dataArray = container.m_dataArray.Where(y => y.AssetName != asAssetRule.AssetName).Union(new CitizenAssetFolderRuleXml[] { asAssetRule }).ToArray(); File.WriteAllText(filename, XmlUtils.DefaultXmlSerialize(container)); } );
private void OnExport() => SafeObtain((ref CitizenCityDataRuleXml x) => FileUtils.DoInPrefabFolder(x.AssetName, (folder) => { string currentDataSerial = GetRuleSerialized(); CitizenAssetFolderRuleXml asAssetRule = XmlUtils.DefaultXmlDeserialize <CitizenAssetFolderRuleXml>(currentDataSerial); var container = new ACERulesetContainer <CitizenAssetFolderRuleXml> { m_dataArray = new CitizenAssetFolderRuleXml[] { asAssetRule } }; string targetData = XmlUtils.DefaultXmlSerialize(container); File.WriteAllText(Path.Combine(folder, ACELoadedDataContainer.DEFAULT_XML_NAME_CITIZEN), targetData); }) );