@onready var moves: Dictionary = {
"idle": $Idle,
"walk": $Walk,
- "dash": $Dash
+ "dash": $Dash,
+ "fall": $Fall
}
var current_move: Move
###
func _ready() -> void:
+ # assign starting state
current_move = moves["idle"]
- # assign player object to each move
+ # assign objects to each move
for move in moves.values():
move.player = player
move.camera = camera
func update(input: InputPacket, delta: float):
- var relevent_move = current_move.should_enter(input)
- if not relevent_move.is_empty():
+ var relevent_move := current_move.should_enter(input)
+ if moves[relevent_move] != current_move:
switch_to(relevent_move)
current_move.update(input, delta)
func switch_to(state: String):
+ player.state = state
current_move.on_exit_state()
current_move = moves[state]
current_move.on_enter_state()