mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -04:00
More shortcuts (#7171)
* Add shortcut 'Tab' to perform unit movement * When no unit is selected, use 'Z' as a shortcut to select next unit
This commit is contained in:
parent
71160b2e63
commit
d6b41c56ff
@ -58,6 +58,7 @@ data class KeyCharAndCode(val char: Char, val code: Int) {
|
|||||||
val NUMPAD_ENTER = KeyCharAndCode(Input.Keys.NUMPAD_ENTER)
|
val NUMPAD_ENTER = KeyCharAndCode(Input.Keys.NUMPAD_ENTER)
|
||||||
val SPACE = KeyCharAndCode(Input.Keys.SPACE)
|
val SPACE = KeyCharAndCode(Input.Keys.SPACE)
|
||||||
val DEL = KeyCharAndCode(Input.Keys.FORWARD_DEL) // Gdx "DEL" is just plain wrong!
|
val DEL = KeyCharAndCode(Input.Keys.FORWARD_DEL) // Gdx "DEL" is just plain wrong!
|
||||||
|
val TAB = KeyCharAndCode(Input.Keys.TAB)
|
||||||
/** Guaranteed to be ignored by [KeyShortcutDispatcher] and never to be generated for an actual event, used as fallback to ensure no action is taken */
|
/** Guaranteed to be ignored by [KeyShortcutDispatcher] and never to be generated for an actual event, used as fallback to ensure no action is taken */
|
||||||
val UNKNOWN = KeyCharAndCode(Input.Keys.UNKNOWN)
|
val UNKNOWN = KeyCharAndCode(Input.Keys.UNKNOWN)
|
||||||
|
|
||||||
|
@ -37,11 +37,14 @@ import com.unciv.ui.map.TileGroupMap
|
|||||||
import com.unciv.ui.tilegroups.TileGroup
|
import com.unciv.ui.tilegroups.TileGroup
|
||||||
import com.unciv.ui.tilegroups.TileSetStrings
|
import com.unciv.ui.tilegroups.TileSetStrings
|
||||||
import com.unciv.ui.tilegroups.WorldTileGroup
|
import com.unciv.ui.tilegroups.WorldTileGroup
|
||||||
|
import com.unciv.ui.utils.KeyCharAndCode
|
||||||
import com.unciv.ui.utils.UnitGroup
|
import com.unciv.ui.utils.UnitGroup
|
||||||
import com.unciv.ui.utils.ZoomableScrollPane
|
import com.unciv.ui.utils.ZoomableScrollPane
|
||||||
import com.unciv.ui.utils.extensions.center
|
import com.unciv.ui.utils.extensions.center
|
||||||
import com.unciv.ui.utils.extensions.colorFromRGB
|
import com.unciv.ui.utils.extensions.colorFromRGB
|
||||||
import com.unciv.ui.utils.extensions.darken
|
import com.unciv.ui.utils.extensions.darken
|
||||||
|
import com.unciv.ui.utils.extensions.keyShortcuts
|
||||||
|
import com.unciv.ui.utils.extensions.onActivation
|
||||||
import com.unciv.ui.utils.extensions.onClick
|
import com.unciv.ui.utils.extensions.onClick
|
||||||
import com.unciv.ui.utils.extensions.surroundWithCircle
|
import com.unciv.ui.utils.extensions.surroundWithCircle
|
||||||
import com.unciv.ui.utils.extensions.toLabel
|
import com.unciv.ui.utils.extensions.toLabel
|
||||||
@ -454,12 +457,13 @@ class WorldMapHolder(
|
|||||||
val unitsThatCanMove = dto.unitToTurnsToDestination.keys.filter { it.currentMovement > 0 }
|
val unitsThatCanMove = dto.unitToTurnsToDestination.keys.filter { it.currentMovement > 0 }
|
||||||
if (unitsThatCanMove.isEmpty()) moveHereButton.color.a = 0.5f
|
if (unitsThatCanMove.isEmpty()) moveHereButton.color.a = 0.5f
|
||||||
else {
|
else {
|
||||||
moveHereButton.onClick(UncivSound.Silent) {
|
moveHereButton.onActivation(UncivSound.Silent) {
|
||||||
UncivGame.Current.settings.addCompletedTutorialTask("Move unit")
|
UncivGame.Current.settings.addCompletedTutorialTask("Move unit")
|
||||||
if (unitsThatCanMove.any { it.baseUnit.movesLikeAirUnits() })
|
if (unitsThatCanMove.any { it.baseUnit.movesLikeAirUnits() })
|
||||||
UncivGame.Current.settings.addCompletedTutorialTask("Move an air unit")
|
UncivGame.Current.settings.addCompletedTutorialTask("Move an air unit")
|
||||||
moveUnitToTargetTile(unitsThatCanMove, dto.tileInfo)
|
moveUnitToTargetTile(unitsThatCanMove, dto.tileInfo)
|
||||||
}
|
}
|
||||||
|
moveHereButton.keyShortcuts.add(KeyCharAndCode.TAB)
|
||||||
}
|
}
|
||||||
return moveHereButton
|
return moveHereButton
|
||||||
}
|
}
|
||||||
@ -475,12 +479,13 @@ class WorldMapHolder(
|
|||||||
unitIcon.y = buttonSize - unitIcon.height
|
unitIcon.y = buttonSize - unitIcon.height
|
||||||
swapWithButton.addActor(unitIcon)
|
swapWithButton.addActor(unitIcon)
|
||||||
|
|
||||||
swapWithButton.onClick(UncivSound.Silent) {
|
swapWithButton.onActivation(UncivSound.Silent) {
|
||||||
UncivGame.Current.settings.addCompletedTutorialTask("Move unit")
|
UncivGame.Current.settings.addCompletedTutorialTask("Move unit")
|
||||||
if (dto.unit.baseUnit.movesLikeAirUnits())
|
if (dto.unit.baseUnit.movesLikeAirUnits())
|
||||||
UncivGame.Current.settings.addCompletedTutorialTask("Move an air unit")
|
UncivGame.Current.settings.addCompletedTutorialTask("Move an air unit")
|
||||||
swapMoveUnitToTargetTile(dto.unit, dto.tileInfo)
|
swapMoveUnitToTargetTile(dto.unit, dto.tileInfo)
|
||||||
}
|
}
|
||||||
|
swapWithButton.keyShortcuts.add(KeyCharAndCode.TAB)
|
||||||
|
|
||||||
return swapWithButton
|
return swapWithButton
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
|||||||
import com.unciv.models.translations.tr
|
import com.unciv.models.translations.tr
|
||||||
import com.unciv.ui.utils.BaseScreen
|
import com.unciv.ui.utils.BaseScreen
|
||||||
import com.unciv.ui.utils.KeyCharAndCode
|
import com.unciv.ui.utils.KeyCharAndCode
|
||||||
|
import com.unciv.ui.utils.KeyShortcut
|
||||||
import com.unciv.ui.utils.extensions.isEnabled
|
import com.unciv.ui.utils.extensions.isEnabled
|
||||||
import com.unciv.ui.utils.extensions.keyShortcuts
|
import com.unciv.ui.utils.extensions.keyShortcuts
|
||||||
import com.unciv.ui.utils.extensions.onActivation
|
import com.unciv.ui.utils.extensions.onActivation
|
||||||
@ -21,6 +22,8 @@ class NextTurnButton(
|
|||||||
onActivation { nextTurnAction.action() }
|
onActivation { nextTurnAction.action() }
|
||||||
keyShortcuts.add(Input.Keys.SPACE)
|
keyShortcuts.add(Input.Keys.SPACE)
|
||||||
keyShortcuts.add('n')
|
keyShortcuts.add('n')
|
||||||
|
// Let unit actions override this for command "Wait".
|
||||||
|
keyShortcuts.add(KeyShortcut(KeyCharAndCode('z'), -100))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun update(isSomethingOpen: Boolean,
|
fun update(isSomethingOpen: Boolean,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user