From fec30364a95bff689e71187ea411ed813f03703f Mon Sep 17 00:00:00 2001 From: Oskar Niesen Date: Wed, 19 Jun 2024 09:13:25 -0500 Subject: [PATCH] Moved automation settings to AutoPlayTab and renamed it to AutomationTab (#11765) * Moved automation settings to AutoPlayTab * Renamed the AutoPlayTab to AutomationTab * Added a translation --- .../jsons/translations/template.properties | 3 ++ .../{AutoPlayTab.kt => AutomationTab.kt} | 53 +++++++++++++++++-- .../unciv/ui/popups/options/GameplayTab.kt | 37 ------------- .../unciv/ui/popups/options/OptionsPopup.kt | 4 +- 4 files changed, 53 insertions(+), 44 deletions(-) rename core/src/com/unciv/ui/popups/options/{AutoPlayTab.kt => AutomationTab.kt} (62%) diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index 2e366498e8..a4e2137865 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -890,6 +890,9 @@ Hide = HIGHLY EXPERIMENTAL - YOU HAVE BEEN WARNED! = You need to restart the game for this change to take effect. = +# AutomationTab +Automation = + # AutoPlay AutoPlay = Show AutoPlay button = diff --git a/core/src/com/unciv/ui/popups/options/AutoPlayTab.kt b/core/src/com/unciv/ui/popups/options/AutomationTab.kt similarity index 62% rename from core/src/com/unciv/ui/popups/options/AutoPlayTab.kt rename to core/src/com/unciv/ui/popups/options/AutomationTab.kt index 5485ec9705..b92f03bd03 100644 --- a/core/src/com/unciv/ui/popups/options/AutoPlayTab.kt +++ b/core/src/com/unciv/ui/popups/options/AutomationTab.kt @@ -2,18 +2,61 @@ package com.unciv.ui.popups.options import com.badlogic.gdx.scenes.scene2d.ui.Table import com.unciv.GUI +import com.unciv.logic.civilization.PlayerType import com.unciv.models.metadata.GameSettings +import com.unciv.ui.components.extensions.addSeparator import com.unciv.ui.components.widgets.UncivSlider import com.unciv.ui.components.extensions.toLabel import com.unciv.ui.screens.basescreen.BaseScreen -import com.unciv.ui.screens.worldscreen.WorldScreen -fun autoPlayTab(optionsPopup: OptionsPopup +fun automationTab(optionsPopup: OptionsPopup ): Table = Table(BaseScreen.skin).apply { pad(10f) defaults().pad(5f) val settings = optionsPopup.settings + add("Automation".toLabel(fontSize = 24)).colspan(2).row() + + optionsPopup.addCheckbox(this, "Auto-assign city production", settings.autoAssignCityProduction, true) { shouldAutoAssignCityProduction -> + settings.autoAssignCityProduction = shouldAutoAssignCityProduction + val worldScreen = GUI.getWorldScreenIfActive() + if (shouldAutoAssignCityProduction && worldScreen != null && + worldScreen.viewingCiv.isCurrentPlayer() && worldScreen.viewingCiv.playerType == PlayerType.Human + ) { + worldScreen.gameInfo.getCurrentPlayerCivilization().cities.forEach { city -> + city.cityConstructions.chooseNextConstruction() + } + } + } + optionsPopup.addCheckbox(this, "Auto-build roads", settings.autoBuildingRoads) { settings.autoBuildingRoads = it } + optionsPopup.addCheckbox( + this, + "Automated workers replace improvements", + settings.automatedWorkersReplaceImprovements + ) { settings.automatedWorkersReplaceImprovements = it } + optionsPopup.addCheckbox( + this, + "Automated units move on turn start", + settings.automatedUnitsMoveOnTurnStart, true + ) { settings.automatedUnitsMoveOnTurnStart = it } + optionsPopup.addCheckbox( + this, + "Automated units can upgrade", + settings.automatedUnitsCanUpgrade, false + ) { settings.automatedUnitsCanUpgrade = it } + optionsPopup.addCheckbox( + this, + "Automated units choose promotions", + settings.automatedUnitsChoosePromotions, false + ) { settings.automatedUnitsChoosePromotions = it } + optionsPopup.addCheckbox( + this, + "Cities auto-bombard at end of turn", + settings.citiesAutoBombardAtEndOfTurn, false + ) { settings.citiesAutoBombardAtEndOfTurn = it } + + addSeparator() + add("AutoPlay".toLabel(fontSize = 24)).colspan(2).row() // fun addAutoPlaySections() { // optionsPopup.addCheckbox( // this, @@ -60,19 +103,19 @@ fun autoPlayTab(optionsPopup: OptionsPopup GUI.getWorldScreenIfActive()?.autoPlay?.stopAutoPlay() } - + optionsPopup.addCheckbox( this, "AutoPlay until victory", settings.autoPlay.autoPlayUntilEnd, false ) { settings.autoPlay.autoPlayUntilEnd = it if (!it) addAutoPlayMaxTurnsSlider(this, settings, optionsPopup.selectBoxMinWidth) - else optionsPopup.tabs.replacePage(optionsPopup.tabs.activePage, autoPlayTab(optionsPopup))} + else optionsPopup.tabs.replacePage(optionsPopup.tabs.activePage, automationTab(optionsPopup))} if (!settings.autoPlay.autoPlayUntilEnd) addAutoPlayMaxTurnsSlider(this, settings, optionsPopup.selectBoxMinWidth) - + // optionsPopup.addCheckbox( // this, // "Full AutoPlay AI", diff --git a/core/src/com/unciv/ui/popups/options/GameplayTab.kt b/core/src/com/unciv/ui/popups/options/GameplayTab.kt index 0ced8386f7..e53fb43d46 100644 --- a/core/src/com/unciv/ui/popups/options/GameplayTab.kt +++ b/core/src/com/unciv/ui/popups/options/GameplayTab.kt @@ -20,43 +20,6 @@ fun gameplayTab( optionsPopup.addCheckbox(this, "Auto Unit Cycle", settings.autoUnitCycle, true) { settings.autoUnitCycle = it } optionsPopup.addCheckbox(this, "Move units with a single tap", settings.singleTapMove) { settings.singleTapMove = it } optionsPopup.addCheckbox(this, "Move units with a long tap", settings.longTapMove) { settings.longTapMove = it } - optionsPopup.addCheckbox(this, "Auto-assign city production", settings.autoAssignCityProduction, true) { shouldAutoAssignCityProduction -> - settings.autoAssignCityProduction = shouldAutoAssignCityProduction - val worldScreen = GUI.getWorldScreenIfActive() - if (shouldAutoAssignCityProduction && worldScreen != null && - worldScreen.viewingCiv.isCurrentPlayer() && worldScreen.viewingCiv.playerType == PlayerType.Human - ) { - worldScreen.gameInfo.getCurrentPlayerCivilization().cities.forEach { city -> - city.cityConstructions.chooseNextConstruction() - } - } - } - optionsPopup.addCheckbox(this, "Auto-build roads", settings.autoBuildingRoads) { settings.autoBuildingRoads = it } - optionsPopup.addCheckbox( - this, - "Automated workers replace improvements", - settings.automatedWorkersReplaceImprovements - ) { settings.automatedWorkersReplaceImprovements = it } - optionsPopup.addCheckbox( - this, - "Automated units move on turn start", - settings.automatedUnitsMoveOnTurnStart, true - ) { settings.automatedUnitsMoveOnTurnStart = it } - optionsPopup.addCheckbox( - this, - "Automated units can upgrade", - settings.automatedUnitsCanUpgrade, false - ) { settings.automatedUnitsCanUpgrade = it } - optionsPopup.addCheckbox( - this, - "Automated units choose promotions", - settings.automatedUnitsChoosePromotions, false - ) { settings.automatedUnitsChoosePromotions = it } - optionsPopup.addCheckbox( - this, - "Cities auto-bombard at end of turn", - settings.citiesAutoBombardAtEndOfTurn, false - ) { settings.citiesAutoBombardAtEndOfTurn = it } optionsPopup.addCheckbox(this, "Order trade offers by amount", settings.orderTradeOffersByAmount) { settings.orderTradeOffersByAmount = it } optionsPopup.addCheckbox(this, "Ask for confirmation when pressing next turn", settings.confirmNextTurn) { settings.confirmNextTurn = it } diff --git a/core/src/com/unciv/ui/popups/options/OptionsPopup.kt b/core/src/com/unciv/ui/popups/options/OptionsPopup.kt index 2de9c6104b..e4ab8da637 100644 --- a/core/src/com/unciv/ui/popups/options/OptionsPopup.kt +++ b/core/src/com/unciv/ui/popups/options/OptionsPopup.kt @@ -85,8 +85,8 @@ class OptionsPopup( ImageGetter.getImage("OtherIcons/Options"), 24f ) tabs.addPage( - "AutoPlay", - autoPlayTab(this), + "Automation", + automationTab(this), ImageGetter.getImage("OtherIcons/NationSwap"), 24f ) tabs.addPage(