From 55d0f7f1ddb0de7881825a351a197edd2c553589 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Thu, 15 Oct 2020 21:09:05 +0300 Subject: [PATCH] Can now move around the world screen with the arrow keys as well as WASD --- changelog.md | 2 ++ .../ui/pickerscreens/ImprovementPickerScreen.kt | 2 ++ core/src/com/unciv/ui/worldscreen/WorldScreen.kt | 14 ++++++++------ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/changelog.md b/changelog.md index a2a0be5a84..8d055417fb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,7 @@ ## 3.11.4 +Added city images by The Bucketeer for all eras up to Modern + Influence bar not displayed for city-states that don't know the viewing civ Resolved #3254 - Solved bug in calculating turns to production for settlers diff --git a/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt index a7ea62f88c..bdc297128b 100644 --- a/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt @@ -7,6 +7,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Button import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.utils.Align import com.unciv.Constants +import com.unciv.UncivGame import com.unciv.logic.map.RoadStatus import com.unciv.logic.map.TileInfo import com.unciv.models.ruleset.tile.TileImprovement @@ -34,6 +35,7 @@ class ImprovementPickerScreen(val tileInfo: TileInfo, val onAccept: ()->Unit) : init { setDefaultCloseAction() + onBackButtonClicked { UncivGame.Current.setWorldScreen() } rightSideButton.setText("Pick improvement".tr()) rightSideButton.onClick { diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt index 19702ef06d..85009fa5dc 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt +++ b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt @@ -71,7 +71,7 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() { private var backButtonListener : InputListener // An initialized val always turned out to illegally be null... - lateinit var keyPressDispatcher: HashMap Unit)> + lateinit var keyPressDispatcher: HashMap Unit)> init { @@ -185,7 +185,9 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() { private val pressedKeys = mutableSetOf() private var infiniteAction : RepeatAction? = null private val amountToMove = 30 / mapHolder.scaleX - private val ALLOWED_KEYS = setOf(Input.Keys.W,Input.Keys.S,Input.Keys.A,Input.Keys.D) + private val ALLOWED_KEYS = setOf(Input.Keys.W,Input.Keys.S,Input.Keys.A,Input.Keys.D, + Input.Keys.UP, Input.Keys.DOWN, Input.Keys.LEFT, Input.Keys.RIGHT ) + override fun keyDown(event: InputEvent?, keycode: Int): Boolean { if (keycode !in ALLOWED_KEYS) return false @@ -202,10 +204,10 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() { fun whileKeyPressedLoop() { for (keycode in pressedKeys) { when (keycode) { - Input.Keys.W -> mapHolder.scrollY -= amountToMove - Input.Keys.S -> mapHolder.scrollY += amountToMove - Input.Keys.A -> mapHolder.scrollX -= amountToMove - Input.Keys.D -> mapHolder.scrollX += amountToMove + Input.Keys.W, Input.Keys.UP -> mapHolder.scrollY -= amountToMove + Input.Keys.S, Input.Keys.DOWN -> mapHolder.scrollY += amountToMove + Input.Keys.A, Input.Keys.LEFT -> mapHolder.scrollX -= amountToMove + Input.Keys.D, Input.Keys.RIGHT -> mapHolder.scrollX += amountToMove } } mapHolder.updateVisualScroll()