mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-13 01:08:25 +07:00
[Linting] Some minor code purity stuff I came across (#10537)
* Centralize shift and control key detection (Unit multiselect now with right-shift too) * Lint of an ugly curly brace placement - otherwise the original was fine * Answer open question in comment * Follow a Gdx 1.12 deprecation * Another clarifying comment - on ScrollPane's built-in potential surprise that the constructor calls its own overridable public methods
This commit is contained in:
@ -256,11 +256,7 @@ open class UncivGame(val isConsoleMode: Boolean = false) : Game(), PlatformSpeci
|
||||
throw UnsupportedOperationException("Use pushScreen or replaceCurrentScreen instead")
|
||||
}
|
||||
|
||||
override fun getScreen(): BaseScreen? {
|
||||
val curScreen = super.getScreen()
|
||||
return if (curScreen == null) { null } else { curScreen as BaseScreen
|
||||
}
|
||||
}
|
||||
override fun getScreen(): BaseScreen? = super.getScreen() as? BaseScreen
|
||||
|
||||
private fun setScreen(newScreen: BaseScreen) {
|
||||
debug("Setting new screen: %s, screenStack: %s", newScreen, screenStack)
|
||||
|
@ -366,6 +366,8 @@ object GdxKeyCodeFixes {
|
||||
}
|
||||
}
|
||||
|
||||
fun Input.isShiftKeyPressed() = isKeyPressed(Input.Keys.SHIFT_LEFT) || isKeyPressed(Input.Keys.SHIFT_RIGHT)
|
||||
fun Input.isControlKeyPressed() = isKeyPressed(Input.Keys.CONTROL_LEFT) || isKeyPressed(Input.Keys.CONTROL_RIGHT)
|
||||
fun Input.areSecretKeysPressed() = isKeyPressed(Input.Keys.SHIFT_RIGHT) &&
|
||||
(isKeyPressed(Input.Keys.CONTROL_RIGHT) || isKeyPressed(Input.Keys.ALT_RIGHT))
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.unciv.ui.components.input
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.Input
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor
|
||||
import com.badlogic.gdx.scenes.scene2d.Group
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
||||
import com.badlogic.gdx.scenes.scene2d.InputListener
|
||||
import com.unciv.ui.components.extensions.isControlKeyPressed
|
||||
import com.unciv.ui.components.input.KeyShortcutDispatcherVeto.DispatcherVetoResult
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ import com.unciv.ui.components.input.KeyShortcutDispatcherVeto.DispatcherVetoRes
|
||||
val key = when {
|
||||
event == null ->
|
||||
KeyCharAndCode.UNKNOWN
|
||||
Gdx.input.isKeyPressed(Input.Keys.CONTROL_LEFT) || Gdx.input.isKeyPressed(Input.Keys.CONTROL_RIGHT) ->
|
||||
Gdx.input.isControlKeyPressed() ->
|
||||
KeyCharAndCode.ctrlFromCode(event.keyCode)
|
||||
else ->
|
||||
KeyCharAndCode(event.keyCode)
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.unciv.ui.components.input
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.Input
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
||||
import com.badlogic.gdx.scenes.scene2d.InputListener
|
||||
import com.badlogic.gdx.scenes.scene2d.actions.Actions
|
||||
import com.badlogic.gdx.scenes.scene2d.actions.RepeatAction
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField
|
||||
import com.unciv.ui.components.extensions.isControlKeyPressed
|
||||
import com.unciv.ui.components.widgets.ZoomableScrollPane
|
||||
|
||||
class KeyboardPanningListener(
|
||||
@ -40,9 +40,8 @@ class KeyboardPanningListener(
|
||||
if (event.target is TextField) return false
|
||||
if (keycode !in allowedKeys) return false
|
||||
// Without the following Ctrl-S would leave WASD map scrolling stuck
|
||||
// Might be obsolete with keyboard shortcut refactoring
|
||||
if (Gdx.input.isKeyPressed(Input.Keys.CONTROL_LEFT)) return false
|
||||
if (Gdx.input.isKeyPressed(Input.Keys.CONTROL_RIGHT)) return false
|
||||
// _Not_ obsolete with keyboard shortcut refactoring
|
||||
if (Gdx.input.isControlKeyPressed()) return false
|
||||
pressedKeys.add(keycode)
|
||||
startLoop()
|
||||
return true
|
||||
|
@ -11,6 +11,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable
|
||||
import com.badlogic.gdx.utils.Align
|
||||
import com.unciv.ui.components.UncivTooltip.Companion.addTooltip
|
||||
import com.unciv.ui.components.extensions.isControlKeyPressed
|
||||
import com.unciv.ui.components.fonts.Fonts
|
||||
import com.unciv.ui.components.input.KeyCharAndCode
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
@ -116,10 +117,6 @@ class KeyCapturingButton(
|
||||
|
||||
// Instead of storing a button reference one could use `(event?.listenerActor as? KeyCapturingButton)?.`
|
||||
private class ButtonListener(private val myButton: KeyCapturingButton) : ClickListener() {
|
||||
private fun controlDown() =
|
||||
Gdx.input.isKeyPressed(Input.Keys.CONTROL_LEFT) ||
|
||||
Gdx.input.isKeyPressed(Input.Keys.CONTROL_RIGHT)
|
||||
|
||||
override fun enter(event: InputEvent?, x: Float, y: Float, pointer: Int, fromActor: Actor?) {
|
||||
if (myButton.stage == null) return
|
||||
myButton.savedFocus = myButton.stage.keyboardFocus
|
||||
@ -135,7 +132,7 @@ class KeyCapturingButton(
|
||||
override fun keyDown(event: InputEvent?, keycode: Int): Boolean {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.UNKNOWN) return false
|
||||
if (keycode == Input.Keys.CONTROL_LEFT || keycode == Input.Keys.CONTROL_RIGHT) return false
|
||||
myButton.handleKey(keycode, controlDown())
|
||||
myButton.handleKey(keycode, Gdx.input.isControlKeyPressed())
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.unciv.ui.components.widgets
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.Input
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.math.Interpolation
|
||||
import com.badlogic.gdx.math.Vector2
|
||||
@ -21,10 +20,12 @@ import com.badlogic.gdx.utils.Timer
|
||||
import com.unciv.Constants
|
||||
import com.unciv.models.UncivSound
|
||||
import com.unciv.ui.audio.SoundPlayer
|
||||
import com.unciv.ui.images.IconCircleGroup
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.extensions.isShiftKeyPressed
|
||||
import com.unciv.ui.components.extensions.surroundWithCircle
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.widgets.UncivSlider.Companion.formatPercent
|
||||
import com.unciv.ui.images.IconCircleGroup
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.sign
|
||||
@ -132,10 +133,10 @@ class UncivSlider (
|
||||
setPlusMinusEnabled()
|
||||
}
|
||||
/** Will make this slider snap to the specified values, if the knob is within the threshold. */
|
||||
fun setSnapToValues(values: FloatArray?, threshold: Float) {
|
||||
fun setSnapToValues(threshold: Float, vararg values: Float) {
|
||||
snapToValues = values // make a copy so our plus/minus code can snap
|
||||
snapThreshold = threshold
|
||||
slider.setSnapToValues(values, threshold)
|
||||
slider.setSnapToValues(threshold, *values)
|
||||
}
|
||||
|
||||
// java format string for the value tip, set by changing stepSize
|
||||
@ -206,10 +207,7 @@ class UncivSlider (
|
||||
// un-snapping with Shift is taken from Slider source, and the loop mostly as well
|
||||
// with snap active, plus/minus buttons will go to the next snap position regardless of stepSize
|
||||
// this could be shorter if Slider.snap(), Slider.snapValues and Slider.threshold weren't protected
|
||||
if (snapToValues?.isEmpty() != false ||
|
||||
Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT) ||
|
||||
Gdx.input.isKeyPressed(Input.Keys.SHIFT_RIGHT)
|
||||
) {
|
||||
if (snapToValues?.isEmpty() != false || Gdx.input.isShiftKeyPressed()) {
|
||||
value += delta
|
||||
onChange?.invoke(value)
|
||||
return
|
||||
|
@ -15,8 +15,8 @@ import com.badlogic.gdx.scenes.scene2d.actions.TemporalAction
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.Cullable
|
||||
import com.unciv.models.metadata.GameSettings
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.models.metadata.GameSettings
|
||||
import com.unciv.ui.components.ZoomGestureListener
|
||||
import com.unciv.ui.components.input.KeyboardPanningListener
|
||||
import java.lang.Float.max
|
||||
@ -70,6 +70,8 @@ open class ZoomableScrollPane(
|
||||
return if (group.hasChildren()) group.children[0] else null
|
||||
}
|
||||
|
||||
// This override will be called from ScrollPane's constructor to store the empty Group() we're passing,
|
||||
// therefore super.getActor() _can_ return null.
|
||||
override fun setActor(content: Actor?) {
|
||||
val group: Group? = super.getActor() as Group?
|
||||
if (group != null) {
|
||||
|
@ -12,15 +12,15 @@ import com.unciv.models.metadata.GameSettings.ScreenSize
|
||||
import com.unciv.models.skins.SkinCache
|
||||
import com.unciv.models.tilesets.TileSetCache
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.components.widgets.TranslatedSelectBox
|
||||
import com.unciv.ui.components.widgets.UncivSlider
|
||||
import com.unciv.ui.components.widgets.WrappableLabel
|
||||
import com.unciv.ui.components.extensions.addSeparator
|
||||
import com.unciv.ui.components.extensions.brighten
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.extensions.toTextButton
|
||||
import com.unciv.ui.components.input.onChange
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.widgets.TranslatedSelectBox
|
||||
import com.unciv.ui.components.widgets.UncivSlider
|
||||
import com.unciv.ui.components.widgets.WrappableLabel
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.popups.ConfirmPopup
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
@ -169,7 +169,7 @@ private fun addPediaUnitArtSizeSlider(table: Table, settings: GameSettings, sele
|
||||
settings.pediaUnitArtSize = it
|
||||
GUI.setUpdateWorldOnNextRender()
|
||||
}
|
||||
unitArtSizeSlider.setSnapToValues(floatArrayOf(0f, 32f, 48f, 64f, 96f, 120f, 180f, 240f, 360f), 60f)
|
||||
unitArtSizeSlider.setSnapToValues(threshold = 60f, 0f, 32f, 48f, 64f, 96f, 120f, 180f, 240f, 360f)
|
||||
table.add(unitArtSizeSlider).minWidth(selectBoxMinWidth).pad(10f).row()
|
||||
}
|
||||
|
||||
|
@ -16,16 +16,16 @@ import com.unciv.models.ruleset.nation.Nation
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
import com.unciv.models.stats.Stats
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.components.widgets.ExpanderTab
|
||||
import com.unciv.ui.components.widgets.TabbedPager
|
||||
import com.unciv.ui.components.widgets.UncivSlider
|
||||
import com.unciv.ui.components.widgets.WrappableLabel
|
||||
import com.unciv.ui.components.extensions.addSeparator
|
||||
import com.unciv.ui.components.extensions.darken
|
||||
import com.unciv.ui.components.extensions.pad
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.extensions.toTextButton
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.widgets.ExpanderTab
|
||||
import com.unciv.ui.components.widgets.TabbedPager
|
||||
import com.unciv.ui.components.widgets.UncivSlider
|
||||
import com.unciv.ui.components.widgets.WrappableLabel
|
||||
import com.unciv.ui.popups.ToastPopup
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.screens.civilopediascreen.CivilopediaScreen
|
||||
@ -230,7 +230,7 @@ class MapEditorViewTab(
|
||||
editorScreen.updateTile(tile)
|
||||
editorScreen.isDirty = true
|
||||
}
|
||||
slider.setSnapToValues(floatArrayOf(0f,1f,2f,3f,4f,5f,6f,7f,8f,9f,10f,12f,15f,20f,30f,40f), 5f)
|
||||
slider.setSnapToValues(threshold = 5f, 0f,1f,2f,3f,4f,5f,6f,7f,8f,9f,10f,12f,15f,20f,30f,40f)
|
||||
add(slider).right().minWidth(80f).fillX().padTop(15f)
|
||||
}).fillX()
|
||||
}
|
||||
|
@ -338,7 +338,7 @@ class GameOptionsTable(
|
||||
}
|
||||
slider.isDisabled = locked
|
||||
val snapValues = floatArrayOf(100f,150f,200f,250f,300f,350f,400f,450f,500f,550f,600f,650f,700f,750f,800f,900f,1000f,1250f,1500f)
|
||||
slider.setSnapToValues(snapValues, 125f)
|
||||
slider.setSnapToValues(threshold = 125f, *snapValues)
|
||||
return slider
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,6 @@ package com.unciv.ui.screens.worldscreen
|
||||
|
||||
import com.badlogic.gdx.Application
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.Input
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.g2d.Batch
|
||||
import com.badlogic.gdx.math.Vector2
|
||||
@ -35,6 +34,7 @@ import com.unciv.ui.components.MiscArrowTypes
|
||||
import com.unciv.ui.components.extensions.center
|
||||
import com.unciv.ui.components.extensions.colorFromRGB
|
||||
import com.unciv.ui.components.extensions.darken
|
||||
import com.unciv.ui.components.extensions.isShiftKeyPressed
|
||||
import com.unciv.ui.components.extensions.surroundWithCircle
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.input.ActivationTypes
|
||||
@ -423,7 +423,7 @@ class WorldMapHolder(
|
||||
if (unit.currentMovement == 0f) unitGroup.color.a = 0.66f
|
||||
unitGroup.touchable = Touchable.enabled
|
||||
unitGroup.onClick {
|
||||
worldScreen.bottomUnitTable.selectUnit(unit, Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT))
|
||||
worldScreen.bottomUnitTable.selectUnit(unit, Gdx.input.isShiftKeyPressed())
|
||||
worldScreen.shouldUpdate = true
|
||||
removeUnitActionOverlay()
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.unciv.ui.screens.worldscreen.unit
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.Input
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor
|
||||
import com.badlogic.gdx.scenes.scene2d.Touchable
|
||||
@ -16,6 +15,7 @@ import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.components.extensions.addSeparator
|
||||
import com.unciv.ui.components.extensions.center
|
||||
import com.unciv.ui.components.extensions.darken
|
||||
import com.unciv.ui.components.extensions.isShiftKeyPressed
|
||||
import com.unciv.ui.components.extensions.toImageButton
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.input.onClick
|
||||
@ -352,7 +352,7 @@ class UnitTable(val worldScreen: WorldScreen) : Table() {
|
||||
selectedTile.isCityCenter() &&
|
||||
(selectedTile.getOwner() == worldScreen.viewingCiv || worldScreen.viewingCiv.isSpectator()) ->
|
||||
citySelected(selectedTile.getCity()!!)
|
||||
nextUnit != null -> selectUnit(nextUnit, Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT))
|
||||
nextUnit != null -> selectUnit(nextUnit, Gdx.input.isShiftKeyPressed())
|
||||
selectedTile == previouslySelectedUnit?.currentTile -> {
|
||||
selectUnit()
|
||||
isVisible = false
|
||||
|
Reference in New Issue
Block a user