fix: clean state_ground and ensure duck-type state machine bootstrap

This commit is contained in:
2026-06-03 16:58:48 -04:00
parent 9c39d79696
commit 6c57f70fb4
4 changed files with 71 additions and 49 deletions
+14 -15
View File
@@ -37,20 +37,20 @@ func _box_static(pos: Vector3, size: Vector3, color: Color) -> StaticBody3D:
func _build_input_map() -> void:
var bindings := {
jump = [KEY_SPACE],
sprint = [KEY_SHIFT],
crouch = [KEY_CTRL],
dash = [KEY_SHIFT],
fire = [MOUSE_BUTTON_RIGHT, KEY_F],
fire_alt = [MOUSE_BUTTON_LEFT],
reload = [KEY_R],
interact = [KEY_E],
move_forward = [KEY_W],
move_back = [KEY_S],
move_left = [KEY_A],
move_right = [KEY_D],
weapon_next = [MOUSE_BUTTON_WHEEL_UP],
weapon_prev = [MOUSE_BUTTON_WHEEL_DOWN],
"jump": [KEY_SPACE],
"sprint": [KEY_SHIFT],
"crouch": [KEY_CTRL],
"dash": [KEY_SHIFT],
"fire": [MOUSE_BUTTON_RIGHT, KEY_F],
"fire_alt": [MOUSE_BUTTON_LEFT],
"reload": [KEY_R],
"interact": [KEY_E],
"move_forward": [KEY_W],
"move_back": [KEY_S],
"move_left": [KEY_A],
"move_right": [KEY_D],
"weapon_next": [MOUSE_BUTTON_WHEEL_UP],
"weapon_prev": [MOUSE_BUTTON_WHEEL_DOWN],
}
for action in bindings:
if not InputMap.has_action(action):
@@ -136,7 +136,6 @@ func _build_player() -> void:
player.add_child(camera)
# set_script() does NOT call _ready(); bootstrap manually after children are in place
# IMPORTANT: player._ready() MUST run BEFORE sm._ready() so the machine has valid params
if player.has_method("_ready"):
player._ready()
if sm.has_method("_ready"):