diff options
| -rw-r--r-- | client/player/controllable_player.gd | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 83496b41..d1211e39 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -273,8 +273,20 @@ func interact(interact_target: InteractTarget): marker.set_interacting(false) func get_interact_target_fps() -> InteractTarget: - # TODO! - return EmptyTarget.new() + var best_interact_target: InteractTarget = EmptyTarget.new() + var target_tile = Vector2i( + int(floor(movement_base.position.x + sin(-fps_look.y + PI))), + int(floor(movement_base.position.z + cos(-fps_look.y + PI))) + ) + + # TODO: Player interactions + + var tile = game.map.get_tile_instance(target_tile) + if game.is_tile_interactive(target_tile, hand): + var target_rot: float = tile.item.rotation.y if tile.item != null and not tile.item.is_round() else 0. + best_interact_target = TileTarget.new(target_tile, tile, tile.item_base.global_position, target_rot) + + return best_interact_target func get_interact_target() -> InteractTarget: var movement_base_2d := Vector2(movement_base.position.x, movement_base.position.z) |