StateMachine.gd 391 B

1234567891011121314151617
  1. class_name StateMachine
  2. extends Node
  3. @export var state: State = null
  4. func transition_to(state_name := "", state_msg := {}) -> void:
  5. state.exit()
  6. state.state_exited.emit()
  7. state = get_node(state_name)
  8. state.enter(state_msg)
  9. state.state_entered.emit()
  10. func _physics_process(delta: float) -> void:
  11. state.physics_update(delta)
  12. func _process(delta: float) -> void:
  13. state.update(delta)