summaryrefslogtreecommitdiff
path: root/client/player/controllable_player.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/player/controllable_player.gd')
-rw-r--r--client/player/controllable_player.gd35
1 files changed, 18 insertions, 17 deletions
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd
index 9db36ad4..99625762 100644
--- a/client/player/controllable_player.gd
+++ b/client/player/controllable_player.gd
@@ -83,7 +83,7 @@ func _process_movement(delta):
var boost = Input.is_action_pressed("boost") or (Global.get_setting("gameplay.latch_boost") and boosting)
- if Input.is_action_pressed("interact") or Input.is_action_just_released("interact"):
+ if Input.is_action_pressed("interact_left") or Input.is_action_just_released("interact_left") or Input.is_action_pressed("interact_right") or Input.is_action_just_released("interact_right"):
input *= 0
else:
target = Vector2i(
@@ -167,8 +167,8 @@ func aabb_point_distance(mi: Vector2, ma: Vector2, p: Vector2) -> float:
func update_position(_new_position: Vector2, _new_rotation: float, _new_boosting: bool):
pass
-func progress(position__: float, speed: float, warn: bool):
- super(position__, speed, warn)
+func progress(position__: float, speed: float, warn: bool, h):
+ super(position__, speed, warn, h)
if warn:
current_vibration_strength = position__
current_vibration_change = speed
@@ -190,14 +190,14 @@ func _on_vibration_timeout():
Input.vibrate_handheld(100, vibration_strength)
vibration_timer.start()
-func put_item(tile: Tile):
- super(tile)
+func put_item(tile: Tile, h: int):
+ super(tile, h)
if Global.get_setting("gameplay.vibration"):
Input.start_joy_vibration(0, 0.1, 0.0, 0.075)
Input.vibrate_handheld(75, 0.1)
-func take_item(tile: Tile):
- super(tile)
+func take_item(tile: Tile, h: int):
+ super(tile, h)
if Global.get_setting("gameplay.vibration"):
Input.start_joy_vibration(0, 0.1, 0.0, 0.075)
Input.vibrate_handheld(75, 0.1)
@@ -210,19 +210,20 @@ func interact():
# 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)
+ game.mp.send_tile_interact(game.player_id, last_interaction, false, 0)
marker.set_interacting(false)
last_interaction = null
marker.set_interactive(game.get_tile_interactive(target))
marker_target = tile.item_base.global_position
- 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)
- if Input.is_action_just_released("interact"):
- last_interaction = null
- game.mp.send_tile_interact(game.player_id, target, false)
- marker.set_interacting(false)
+ for h in [0, 1]:
+ if Input.is_action_just_pressed("interact_"+G.index_to_hand(h)) and last_interaction == null:
+ last_interaction = target
+ game.mp.send_tile_interact(game.player_id, target, true, h)
+ tile.interact()
+ marker.set_interacting(true)
+ if Input.is_action_just_released("interact_"+G.index_to_hand(h)):
+ last_interaction = null
+ game.mp.send_tile_interact(game.player_id, target, false, h)
+ marker.set_interacting(false)
else:
marker.visible = false