diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/player/controllable_player.gd | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 5fb99872..d329aeea 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -273,7 +273,7 @@ func update_interact_target_dirsnap(): var tile_center := Vector2(offset_cursor) + Vector2(0.5, 0.5) if game.get_tile_interactive(offset_cursor): - var cursor_tile_distance := (interact_target - tile_center).length() + var cursor_tile_distance := interact_target.distance_to(tile_center) var player_tile_distance := Vector2( movement_base.position.x - tile_center.x, movement_base.position.z - tile_center.y @@ -288,6 +288,7 @@ func update_interact_target_dirsnap(): # Check if there are any players on this tile. # If there are multilpe, remember the player closest to the center of the tile # (They will be the interact target) + var best_cursor_tile_distance := 100. var best_player_tile_distance := 100. var best_player_pos: Vector3 for p_id: int in player_positions.keys(): @@ -295,13 +296,16 @@ func update_interact_target_dirsnap(): var p_pos: Vector3 = player_positions[p_id] var p_pos_2d := Vector2(p_pos.x, p_pos.z) var tile_center_distance := p_pos_2d.distance_to(tile_center) + var cursor_tile_distance := interact_target.distance_to(tile_center) var player_tile_distance := Vector2(movement_base.position.x, movement_base.position.z).distance_to(tile_center) if tile_center_distance < 0.7: - if player_tile_distance < best_player_tile_distance: + if cursor_tile_distance < best_cursor_tile_distance: + best_cursor_tile_distance = cursor_tile_distance best_player_tile_distance = player_tile_distance best_player_pos = p_pos - if best_player_tile_distance < MAX_PLAYER_INTERACT_DIST && best_player_tile_distance < best_distance: + + if best_player_tile_distance < MAX_PLAYER_INTERACT_DIST && best_cursor_tile_distance < best_distance: found_interact_target = true - best_distance = best_player_tile_distance + best_distance = best_cursor_tile_distance target_visual = best_player_pos target_tile = offset_cursor |