mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 21:35:14 -04:00
Fixed annoying bug which would treat long pans and flings as long clicks
This commit is contained in:
parent
526a99fb0d
commit
3ea6c63e0b
@ -104,8 +104,8 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
|
|||||||
// for every tile is VERY memory-intensive.
|
// for every tile is VERY memory-intensive.
|
||||||
// Instead, we now create a single GestureListener, and in it check which tileGroup was hit.
|
// Instead, we now create a single GestureListener, and in it check which tileGroup was hit.
|
||||||
|
|
||||||
fun toTileGroup(stageCoordinatesVector:Vector2): WorldTileGroup? {
|
fun toTileGroup(stageCoordinatesVector: Vector2): WorldTileGroup? {
|
||||||
for(tileGroup in tileGroups.values) {
|
for (tileGroup in tileGroups.values) {
|
||||||
val point = stageCoordinatesVector.cpy()
|
val point = stageCoordinatesVector.cpy()
|
||||||
tileGroup.stageToLocalCoordinates(point)
|
tileGroup.stageToLocalCoordinates(point)
|
||||||
val hit = tileGroup.hit(point.x, point.y, false)
|
val hit = tileGroup.hit(point.x, point.y, false)
|
||||||
@ -115,19 +115,22 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun tap(event: InputEvent, x: Float, y: Float, count: Int, button: Int) {
|
override fun tap(event: InputEvent, x: Float, y: Float, count: Int, button: Int) {
|
||||||
val tileGroup = toTileGroup(Vector2(event.stageX,event.stageY))
|
val tileGroup = toTileGroup(Vector2(event.stageX, event.stageY))
|
||||||
if(tileGroup!=null) onTileClicked(tileGroup.tileInfo)
|
if (tileGroup != null) onTileClicked(tileGroup.tileInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun longPress(actor: Actor, x: Float, y: Float): Boolean {
|
|
||||||
if(!worldScreen.isPlayersTurn) return false // no long click when it's not your turn
|
|
||||||
|
|
||||||
|
override fun longPress(actor: Actor, x: Float, y: Float): Boolean {
|
||||||
|
if (!worldScreen.isPlayersTurn) return false // no long click when it's not your turn
|
||||||
|
// otherwise it activates,
|
||||||
|
// since it's been a long time since the touchdown and no touchup has activates
|
||||||
|
if (isPanning || isFlinging) return false
|
||||||
// x and y are in local coordinates, so convert to stage coordinates
|
// x and y are in local coordinates, so convert to stage coordinates
|
||||||
// (we're basically undoing what the ActorGestureListener did)
|
// (we're basically undoing what the ActorGestureListener did)
|
||||||
val coords = Vector2(x,y)
|
val coords = Vector2(x, y)
|
||||||
actor.localToStageCoordinates(coords)
|
actor.localToStageCoordinates(coords)
|
||||||
val tileGroup = toTileGroup(coords)
|
val tileGroup = toTileGroup(coords)
|
||||||
if(tileGroup!=null)
|
if (tileGroup != null)
|
||||||
return onTileLongClicked(tileGroup.tileInfo)
|
return onTileLongClicked(tileGroup.tileInfo)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user