diff options
Diffstat (limited to 'client/player/controllable_player.gd')
| -rw-r--r-- | client/player/controllable_player.gd | 35 | 
1 files changed, 18 insertions, 17 deletions
| diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 9db36ad4..d241bc2e 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): +	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): +	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, "left")  			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 ["left", "right"]: +			if Input.is_action_just_pressed("interact_"+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_"+h): +				last_interaction = null +				game.mp.send_tile_interact(game.player_id, target, false, h) +				marker.set_interacting(false)  	else:  		marker.visible = false | 
