From c8c1ecc4dab61fdf773548e8b7fa3f5800f411da Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Wed, 21 Mar 2018 19:07:05 +0200 Subject: [PATCH] Old borders now disappear when borders expand --- core/src/com/unciv/ui/tilegroups/TileGroup.kt | 8 +++++--- .../com/unciv/ui/tilegroups/WorldTileGroup.kt | 17 ++++++----------- .../com/unciv/ui/worldscreen/TileMapHolder.kt | 2 +- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/core/src/com/unciv/ui/tilegroups/TileGroup.kt b/core/src/com/unciv/ui/tilegroups/TileGroup.kt index af8c071f01..bce8d52e09 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroup.kt @@ -2,7 +2,6 @@ package com.unciv.ui.tilegroups import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.Group -import com.badlogic.gdx.scenes.scene2d.ui.Container import com.badlogic.gdx.scenes.scene2d.ui.Image import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.badlogic.gdx.utils.Align @@ -22,8 +21,9 @@ open class TileGroup(var tileInfo: TileInfo) : Group() { private var improvementType: String? = null var populationImage: Image? = null private var roadImages = HashMap() + private var borderImages = ArrayList() - protected var cityButton: Container? = null + public var cityButton: TextButton? = null init { val groupSize = 50f @@ -158,10 +158,11 @@ open class TileGroup(var tileInfo: TileInfo) : Group() { } } + // Borders if(tileInfo.owner!=null){ + for(border in borderImages) border.remove() for (neighbor in tileInfo.neighbors.filter { it.owner!=tileInfo.owner }){ val image = ImageGetter.getImage(ImageGetter.WhiteDot) -// roadImages[neighbor.position.toString()] = image val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position) val relativeWorldPosition = HexMath.Hex2WorldCoords(relativeHexPosition) @@ -179,6 +180,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() { image.setOrigin(image.width/2, image.height/2) // This is so that the rotation is calculated from the middle of the road and not the edge image.rotation = (90 + 180 / Math.PI * Math.atan2(relativeWorldPosition.y.toDouble(), relativeWorldPosition.x.toDouble())).toFloat() addActor(image) + borderImages.add(image) } } diff --git a/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt b/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt index 64fee11abf..41966a708b 100644 --- a/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt @@ -1,6 +1,5 @@ package com.unciv.ui.tilegroups -import com.badlogic.gdx.scenes.scene2d.ui.Container import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.logic.map.TileInfo import com.unciv.ui.cityscreen.CityScreen @@ -32,23 +31,19 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { if (tileInfo.isCityCenter) { val buttonScale = 0.7f if (cityButton == null) { - cityButton = Container() - cityButton!!.actor = TextButton("", CameraStageBaseScreen.skin) - - cityButton!!.actor.label.setFontScale(buttonScale) + cityButton = TextButton("", CameraStageBaseScreen.skin) + cityButton!!.label.setFontScale(buttonScale) val game = worldScreen.game - cityButton!!.actor.addClickListener { game.screen = CityScreen(city!!) - } + cityButton!!.addClickListener { game.screen = CityScreen(city!!)} - addActor(cityButton!!) + addActor(cityButton) zIndex = parent.children.size // so this tile is rendered over neighboring tiles } val cityButtonText = city!!.name + " (" + city.population.population + ")" - val button = cityButton!!.actor - button.setText(cityButtonText) - button.setSize(button.prefWidth, button.prefHeight) + cityButton!!.setText(cityButtonText) + cityButton!!.setSize(cityButton!!.prefWidth, cityButton!!.prefHeight) cityButton!!.setPosition((width - cityButton!!.width) / 2, height * 0.9f) diff --git a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt index 9dbb020737..7b8c579788 100644 --- a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt +++ b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt @@ -72,7 +72,7 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: lastInitialDistance = initialDistance lastScale = scaleX } - val scale = Math.sqrt((distance / initialDistance).toDouble()).toFloat() * lastScale + val scale: Float = Math.sqrt((distance / initialDistance).toDouble()).toFloat() * lastScale if (scale < 1) return setScale(scale) }