diff options
| author | tpart <tpart120@proton.me> | 2025-12-11 23:03:21 +0100 |
|---|---|---|
| committer | tpart <tpart120@proton.me> | 2025-12-11 23:03:21 +0100 |
| commit | 2056f0cebf2118437df724e93562055d2d5bb730 (patch) | |
| tree | bbbc235724c5b4e49ab70c059e23905d091286fe | |
| parent | f03fc3d82bcffb2994a9b9513e6936f93b31a996 (diff) | |
| download | hurrycurry-2056f0cebf2118437df724e93562055d2d5bb730.tar hurrycurry-2056f0cebf2118437df724e93562055d2d5bb730.tar.bz2 hurrycurry-2056f0cebf2118437df724e93562055d2d5bb730.tar.zst | |
Add FPS interactions (Closes #501)
| -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) |