Display tile yields (#3322)

* Show tile yields functionality (WIP)

* Toggle yields (WIP)

* Show Yields (WIP)

* Show tile yields WIP

* showTileYields (WIP)

* tidying code

* Display tile yields (WIP)

* Show tile yields (WIP)

* Update CityTileGroup.kt
This commit is contained in:
jnecus 2020-12-13 07:31:37 +00:00 committed by GitHub
parent e6882e8223
commit 0e5b2f0db0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 38 additions and 13 deletions

View File

@ -9,6 +9,7 @@ data class WindowState (val width:Int=0, val height:Int=0)
class GameSettings {
var showWorkedTiles: Boolean = false
var showResourcesAndImprovements: Boolean = true
var showTileYields: Boolean = true // JN
var checkForDueUnits: Boolean = true
var singleTapMove: Boolean = false
var language: String = "English"

View File

@ -26,7 +26,7 @@ class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo, tileSetStrin
}
fun update() {
super.update(city.civInfo, true)
super.update(city.civInfo, true, false)
// this needs to happen on update, because we can buy tiles, which changes the definition of the bought tiles...
when {

View File

@ -13,6 +13,7 @@ import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.map.RoadStatus
import com.unciv.logic.map.TileInfo
import com.unciv.models.ruleset.unit.UnitType
import com.unciv.ui.cityscreen.YieldGroup
import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.center
import com.unciv.ui.utils.centerX
@ -75,6 +76,8 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
}
val miscLayerGroup = MiscLayerGroupClass().apply { isTransform = false; setSize(groupSize, groupSize) }
var tileYieldGroup = YieldGroup() // JN
var resourceImage: Actor? = null
var resource: String? = null
private val roadImages = HashMap<TileInfo, RoadImage>()
@ -336,7 +339,7 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
|| viewingCiv.exploredTiles.contains(tileInfo.position)
|| viewingCiv.isSpectator()
open fun update(viewingCiv: CivilizationInfo? = null, showResourcesAndImprovements: Boolean = true) {
open fun update(viewingCiv: CivilizationInfo? = null, showResourcesAndImprovements: Boolean = true, showTileYields: Boolean = true) {
fun clearUnexploredTiles() {
updateTileImage(null)
@ -347,7 +350,7 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
if (borderImages.isNotEmpty()) clearBorders()
icons.update(false, false, false, null)
icons.update(false,false ,false, false, null)
fogImage.isVisible = true
}
@ -372,7 +375,7 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
updatePixelMilitaryUnit(tileIsViewable && showMilitaryUnit)
updatePixelCivilianUnit(tileIsViewable)
icons.update(showResourcesAndImprovements, tileIsViewable, showMilitaryUnit,viewingCiv)
icons.update(showResourcesAndImprovements,showTileYields, tileIsViewable, showMilitaryUnit,viewingCiv)
updateCityImage()
updateNaturalWonderImage()

View File

@ -8,10 +8,7 @@ import com.badlogic.gdx.utils.Align
import com.unciv.UncivGame
import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.map.MapUnit
import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.UnitGroup
import com.unciv.ui.utils.center
import com.unciv.ui.utils.toLabel
import com.unciv.ui.utils.*
/** Helper class for TileGroup, which was getting too full */
class TileGroupIcons(val tileGroup: TileGroup){
@ -22,10 +19,12 @@ class TileGroupIcons(val tileGroup: TileGroup){
var civilianUnitIcon: UnitGroup? = null
var militaryUnitIcon: UnitGroup? = null
fun update(showResourcesAndImprovements: Boolean, tileIsViewable: Boolean, showMilitaryUnit: Boolean, viewingCiv:CivilizationInfo?) {
fun update(showResourcesAndImprovements: Boolean, showTileYields: Boolean, tileIsViewable: Boolean, showMilitaryUnit: Boolean, viewingCiv:CivilizationInfo?) {
updateResourceIcon(showResourcesAndImprovements)
updateImprovementIcon(showResourcesAndImprovements)
updateYieldIcon(showTileYields) // JN
civilianUnitIcon = newUnitIcon(tileGroup.tileInfo.civilianUnit, civilianUnitIcon,
tileIsViewable, -20f, viewingCiv)
militaryUnitIcon = newUnitIcon(tileGroup.tileInfo.militaryUnit, militaryUnitIcon,
@ -117,6 +116,29 @@ class TileGroupIcons(val tileGroup: TileGroup){
}
}
// JN updating display of tile yields
private fun updateYieldIcon(showTileYields: Boolean) {
// Hiding yield icons (in order to update)
tileGroup.tileYieldGroup.isVisible = false
if (showTileYields) {
// Setting up YieldGroup Icon
tileGroup.tileYieldGroup.setStats(tileGroup.tileInfo.getTileStats(CivilizationInfo()))
tileGroup.tileYieldGroup.setOrigin(Align.center)
tileGroup.tileYieldGroup.setScale(0.7f)
tileGroup.tileYieldGroup.toFront()
tileGroup.tileYieldGroup.centerX(tileGroup)
tileGroup.tileYieldGroup.y = tileGroup.height * 0.25f - tileGroup.tileYieldGroup.height / 2
tileGroup.tileYieldGroup.isVisible = true
// Adding YieldGroup to miscLayerGroup
tileGroup.miscLayerGroup.addActor(tileGroup.tileYieldGroup)
}
}
fun updateResourceIcon(showResourcesAndImprovements: Boolean) {
if (tileGroup.resource != tileGroup.tileInfo.resource) {
tileGroup.resource = tileGroup.tileInfo.resource

View File

@ -38,7 +38,7 @@ class WorldTileGroup(internal val worldScreen: WorldScreen, tileInfo: TileInfo,
// remove city buttons in unexplored tiles during spectating/fog of war
updateCityButton(null, showEntireMap)
super.update(viewingCiv, UncivGame.Current.settings.showResourcesAndImprovements)
super.update(viewingCiv, UncivGame.Current.settings.showResourcesAndImprovements, UncivGame.Current.settings.showTileYields)
}

View File

@ -83,9 +83,8 @@ class OptionsPopup(val previousScreen:CameraStageBaseScreen) : Popup(previousScr
addHeader("Display options")
addYesNoRow ("Show worked tiles", settings.showWorkedTiles, true) { settings.showWorkedTiles = it }
addYesNoRow ("Show resources and improvements", settings.showResourcesAndImprovements, true) {
settings.showResourcesAndImprovements = it
}
addYesNoRow ("Show resources and improvements", settings.showResourcesAndImprovements, true) { settings.showResourcesAndImprovements = it }
addYesNoRow ("Show tile yields", settings.showTileYields, true) { settings.showTileYields = it } // JN
addYesNoRow ("Show tutorials", settings.showTutorials, true) {settings.showTutorials = it }
addYesNoRow ("Show minimap", settings.showMinimap, true) { settings.showMinimap = it }
addYesNoRow ("Show pixel units", settings.showPixelUnits, true) { settings.showPixelUnits = it }