summaryrefslogtreecommitdiff
path: root/client/player/controllable_player.gd
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-10-06 17:32:52 +0200
committernokoe <nokoe@mailbox.org>2024-10-06 17:35:04 +0200
commite64753b4394be3b329a10e3e9cc06efbbc91266d (patch)
treeb262ccd18e95ae1613f3a729ca2eb717cd72a88b /client/player/controllable_player.gd
parent5f525f9331b19d18760685d57365eb6a1702a47c (diff)
downloadhurrycurry-e64753b4394be3b329a10e3e9cc06efbbc91266d.tar
hurrycurry-e64753b4394be3b329a10e3e9cc06efbbc91266d.tar.bz2
hurrycurry-e64753b4394be3b329a10e3e9cc06efbbc91266d.tar.zst
refactor selector code; fixes #214
Diffstat (limited to 'client/player/controllable_player.gd')
-rw-r--r--client/player/controllable_player.gd19
1 files changed, 11 insertions, 8 deletions
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd
index 8c907efa..3a245e1a 100644
--- a/client/player/controllable_player.gd
+++ b/client/player/controllable_player.gd
@@ -39,7 +39,7 @@ var current_vibration_strength := 0.
var current_vibration_change := 0.
var target: Vector2i = Vector2i(0, 0)
-var last_interaction: Vector2i = Vector2i(0, 0)
+var last_interaction = null
func _ready():
vibration_timer = Timer.new()
@@ -205,20 +205,23 @@ func take_item(tile: Tile):
func interact():
if not is_input_enabled(): return
var tile = game.map.get_tile_instance(target)
- if tile != null and not last_interaction == target:
- if interacting:
+ if tile != null:
+ marker.visible = true
+
+ # clear last interaction if target has moved since
+ if last_interaction != null and not last_interaction == target:
game.mp.send_tile_interact(game.player_id, last_interaction, false)
+ marker.set_interacting(false)
+ last_interaction = null
marker.set_interactive(game.get_tile_interactive(target))
- marker.visible = true
marker_target = tile.item_base.global_position
- if Input.is_action_just_pressed("interact"):
- interacting = true
+ if Input.is_action_just_pressed("interact") and last_interaction == null:
last_interaction = target
game.mp.send_tile_interact(game.player_id, target, true)
tile.interact()
marker.set_interacting(true)
- elif Input.is_action_just_released("interact"):
- interacting = false
+ if Input.is_action_just_released("interact"):
+ last_interaction = null
game.mp.send_tile_interact(game.player_id, target, false)
marker.set_interacting(false)
else: