aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/player/controllable_player.gd16
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)