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 void RegisterBuildingVehicleConfig(VehicleAssetFolderRuleXml config, BuildingInfo info) { if (config.AssetName == null) { config.BuildingName = info.name; config.Source = RuleSource.ASSET; m_colorConfigDataBuildingsVehiclesGlobal[info.name] = config; } }
public void RegisterVehicleConfig(VehicleAssetFolderRuleXml config, VehicleInfo 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_colorConfigDataVehicles[info.name] = config; } }
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); }); } });