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));
            }
        }
                                                   );
Example #2
0
 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];
Example #4
0
 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));
 }
                                            );
Example #5
0
 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;
                    }
                }
            }
        }