24 lines
1 KiB
GDScript
24 lines
1 KiB
GDScript
## 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
|