fix: wire movement controller before state machine; harden machine lookup

This commit is contained in:
2026-06-03 15:14:10 -04:00
parent 24a8651a6d
commit c0a90df690
2 changed files with 43 additions and 24 deletions
+5 -8
View File
@@ -65,6 +65,11 @@ func _build_player() -> void:
shape.shape.height = 1.8
player.add_child(shape)
# Movement controller MUST be attached first, before machine/children
var mover_script = load("res://movement/player_movement_controller.gd")
if mover_script:
player.set_script(mover_script)
# State machine
var sm := Node.new()
sm.name = "MovementStateMachine"
@@ -91,14 +96,6 @@ func _build_player() -> void:
if st_script:
st.set_script(st_script)
# Movement controller
var mover_script = load("res://movement/player_movement_controller.gd")
if mover_script:
player.set_script(mover_script)
# set_script does not auto-call _ready(); do it manually
if player.has_method("_ready"):
player._ready()
# Camera
var camera := Camera3D.new()
camera.name = "Camera3D"