## Virtual base class for all states. ## Extend this class and override its methods to implement a state. @abstract class_name State extends Node ## Emitted when the state finishes and wants to transition to another state. @warning_ignore("unused_signal") signal finished(next_state_path: String, data: Dictionary) ## Called by the state machine when receiving unhandled input events. @abstract func _handle_input(_event: InputEvent) -> void ## Called by the state machine on the engine's main loop tick. @abstract func _state_update(_delta: float) -> void ## Called by the state machine on the engine's physics update tick. @abstract func _state_physics_update(_delta: float) -> void ## Called by the state machine upon changing the active state. The `data` parameter ## is a dictionary with arbitrary data the state can use to initialize itself. @abstract func _enter(previous_state_path: String, data: Dictionary) -> void ## Called by the state machine before changing the active state. Use this function ## to clean up the state. @abstract func _exit() -> void