create abstract state class
This commit is contained in:
parent
fe15b62976
commit
c1aaa9492f
3 changed files with 31 additions and 0 deletions
24
scenes/classes/state.gd
Normal file
24
scenes/classes/state.gd
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
## 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
|
||||
1
scenes/classes/state.gd.uid
Normal file
1
scenes/classes/state.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bpjerj832q2gf
|
||||
6
scenes/classes/state.tscn
Normal file
6
scenes/classes/state.tscn
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://kyeowhvglgj2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bpjerj832q2gf" path="res://scenes/classes/state.gd" id="1_m4c3p"]
|
||||
|
||||
[node name="State" type="Node"]
|
||||
script = ExtResource("1_m4c3p")
|
||||
Loading…
Add table
Reference in a new issue