private void OnExportLocal() => SafeObtain((ref VehicleCityDataRuleXml x) => { string targetFilename = null; switch (x.RuleCheckType) { case RuleCheckTypeVehicle.ASSET_NAME_OWNER: targetFilename = ACELoadedDataContainer.DEFAULT_XML_NAME_BUILDING_VEHICLES_GLOBAL; break; case RuleCheckTypeVehicle.ASSET_NAME_SELF: targetFilename = ACELoadedDataContainer.DEFAULT_XML_NAME_VEHICLE; break; } if (targetFilename != null) { FileUtils.EnsureFolderCreation(ACEController.FOLDER_PATH_GENERAL_CONFIG); string filename = Path.Combine(ACEController.FOLDER_PATH_GENERAL_CONFIG, targetFilename); string currentDataSerial = GetRuleSerialized(); VehicleAssetFolderRuleXml asAssetRule = XmlUtils.DefaultXmlDeserialize <VehicleAssetFolderRuleXml>(currentDataSerial); ACERulesetContainer <VehicleAssetFolderRuleXml> container = File.Exists(filename) ? XmlUtils.DefaultXmlDeserialize <ACERulesetContainer <VehicleAssetFolderRuleXml> >(File.ReadAllText(filename)) : new ACERulesetContainer <VehicleAssetFolderRuleXml>(); container.m_dataArray = container.m_dataArray.Where(y => y.AssetName != asAssetRule.AssetName).Union(new VehicleAssetFolderRuleXml[] { asAssetRule }).ToArray(); File.WriteAllText(filename, XmlUtils.DefaultXmlSerialize(container)); } } );
private static void ColorParametersGetter( ushort buildingID, out ACERulesetContainer <BuildingCityDataRuleXml> rulesGlobal, out Dictionary <string, BuildingAssetFolderRuleXml> assetRules, out BuildingInfo info, out Vector3 pos) { ref Building data = ref BuildingManager.instance.m_buildings.m_buffer[buildingID];
private static void ColorParametersGetter( ushort id, out ACERulesetContainer <CitizenCityDataRuleXml> rulesGlobal, out Dictionary <string, CitizenAssetFolderRuleXml> assetRules, out CitizenInfo info, out Vector3 pos) { ref CitizenInstance data = ref CitizenManager.instance.m_instances.m_buffer[id];
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); }) );
private void OnExport() => SafeObtain((ref VehicleCityDataRuleXml x) => { string targetAsset = null; string targetFilename = null; switch (x.RuleCheckType) { case RuleCheckTypeVehicle.ASSET_NAME_OWNER: targetAsset = (x.BuildingName); targetFilename = ACELoadedDataContainer.DEFAULT_XML_NAME_BUILDING_VEHICLES; break; case RuleCheckTypeVehicle.ASSET_NAME_SELF: targetAsset = (x.AssetName); targetFilename = ACELoadedDataContainer.DEFAULT_XML_NAME_VEHICLE; break; } if (targetAsset != null) { FileUtils.DoInPrefabFolder(targetAsset, (folder) => { string targetDataSerial = GetRuleSerialized(); ACERulesetContainer <VehicleAssetFolderRuleXml> container; if (File.Exists(Path.Combine(folder, targetFilename))) { try { container = XmlUtils.DefaultXmlDeserialize <ACERulesetContainer <VehicleAssetFolderRuleXml> >(File.ReadAllText(Path.Combine(folder, targetFilename))); } catch { container = new ACERulesetContainer <VehicleAssetFolderRuleXml>(); } } else { container = new ACERulesetContainer <VehicleAssetFolderRuleXml>(); } VehicleAssetFolderRuleXml asAssetRule = XmlUtils.DefaultXmlDeserialize <VehicleAssetFolderRuleXml>(targetDataSerial); container.m_dataArray = container.m_dataArray.Where(x => x.AssetName != asAssetRule.AssetName).Union(new VehicleAssetFolderRuleXml[] { asAssetRule }).ToArray(); string targetData = XmlUtils.DefaultXmlSerialize(container); File.WriteAllText(Path.Combine(folder, targetFilename), targetData); }); } });
private void LoadLocalConfiguration <T>(Dictionary <string, T> target, string file) where T : BasicColorConfigurationXml, IAssetNameable, IRuleCacheSource, new() { string path = Path.Combine(ACEController.FOLDER_PATH_GENERAL_CONFIG, file); if (File.Exists(path)) { ACERulesetContainer <T> container = XmlUtils.DefaultXmlDeserialize <ACERulesetContainer <T> >(File.ReadAllText(path)); foreach (T item in container.m_dataArray) { if (item.AssetName != null) { item.Source = RuleSource.LOCAL; target[item.AssetName] = item; } } } }