feat: Implement player input and movement managers for grid-based interaction and movement.

This commit is contained in:
Yogi Wiguna
2026-02-12 12:11:38 +08:00
parent 5cf77c19ab
commit 5275c4acd8
4 changed files with 71 additions and 7 deletions
@@ -81,6 +81,18 @@ func simple_move_to(grid_position: Vector2i) -> bool:
var push_dir = grid_position - player.current_position
if not try_push(grid_position, push_dir):
return false
# Check for Tekton interaction (Knock Mode)
# If moving into a Tekton's space while in Knock Mode, trigger knock
if player.get("is_knock_mode"):
# Find Tekton at grid_position
var tektons = player.get_tree().get_nodes_in_group("Tektons")
for t in tektons:
if t.current_position == grid_position and not t.is_carried:
# Trigger Knock
player.knock_tekton()
return false # Don't move into the tile, just knock
rotate_towards_target(grid_position)