private void BuildNonDefault(ModConfigModel config)
        {
            ModSettingModel modSetting = JsonHelper.FromJsonFile <ModSettingModel>(CustomMilestonesMod.modSettingFilePath) ?? new ModSettingModel();

            if (modSetting.BuildAllAssets)
            {
                CustomAssets assets = new CustomAssets();

                for (uint index = 0; index < PrefabCollection <NetInfo> .LoadedCount(); index++)
                {
                    NetInfo net = PrefabCollection <NetInfo> .GetLoaded(index);

                    if (net.GetUnlockMilestone().GetLevel() > 0 && !config.RoadIncludes.Contains(config.Renames.GetRename(net.name)) && !config.RoadGroups.Any(m => m.Value.Contains(net.name)))
                    {
                        assets.Roads.Add(new ItemModel()
                        {
                            Name          = net.name,
                            LocalizedName = net.GetLocalizedTitle(),
                            Expansions    = net.m_class.m_service.ToString() + "|" + net.m_class.m_subService.ToString() + "|" + net.category
                        });
                    }
                }

                for (uint index = 0; index < PrefabCollection <BuildingInfo> .LoadedCount(); index++)
                {
                    BuildingInfo building = PrefabCollection <BuildingInfo> .GetLoaded(index);

                    if (building.GetUnlockMilestone().GetLevel() > 0 && !config.BuildingIncludes.Contains(config.Renames.GetRename(building.name)) && !config.BuildingGroups.Any(m => m.Value.Contains(building.name)))
                    {
                        if (building.category == "RoadsIntersection")
                        {
                            assets.Roads.Add(new ItemModel()
                            {
                                Name          = building.name,
                                LocalizedName = building.GetLocalizedTitle()
                            });
                        }
                        else
                        {
                            assets.Buildings.Add(new ItemModel()
                            {
                                Name          = building.name,
                                LocalizedName = building.GetLocalizedTitle()
                            });
                        }
                    }
                }

                modSetting.BuildAllAssets = false;
                JsonHelper.ToJsonFile(modSetting, CustomMilestonesMod.modSettingFilePath);
                XmlHelper.ToXmlFile(assets, DataLocation.executableDirectory + "\\CustomMilestone-Non-Default.xml");
            }
        }
示例#2
0
        public void OnSettingsUI(UIHelperBase helper)
        {
            ModSettingModel modSetting = JsonHelper.FromJsonFile <ModSettingModel>(modSettingFilePath) ?? new ModSettingModel();
            UIHelperBase    group      = helper.AddGroup(Translations.Translate("ModName", "Custom Milestones"));

            group.AddCheckbox(Translations.Translate("Label_FreePurchaseArea", "Free purchase area"), modSetting.FreePurchaseArea, (isChecked) =>
            {
                modSetting.FreePurchaseArea = isChecked;
                JsonHelper.ToJsonFile(modSetting, modSettingFilePath);
            });

            group.AddCheckbox(Translations.Translate("Label_BuildNonDefaul", "Build game non-defaul assets"), modSetting.BuildAllAssets, (isChecked) =>
            {
                modSetting.BuildAllAssets = isChecked;
                JsonHelper.ToJsonFile(modSetting, modSettingFilePath);
            });
        }
        public override int OnGetAreaPrice(uint ore, uint oil, uint forest, uint fertility, uint water, bool road, bool train, bool ship, bool plane, float landFlatness, int originalPrice)
        {
            ModSettingModel modSetting = JsonHelper.FromJsonFile <ModSettingModel>(CustomMilestonesMod.modSettingFilePath) ?? new ModSettingModel();

            return(modSetting.FreePurchaseArea ? 0 : originalPrice);
        }