This commit is contained in:
groug 2023-02-14 16:24:53 +01:00
parent 483161d330
commit 296cb41e45
2 changed files with 54 additions and 1 deletions

1
README
View File

@ -1 +0,0 @@
icon: made by Freepik from https://www.flaticon.com, license: Creative Commons BY 3.0

54
README.md Normal file
View File

@ -0,0 +1,54 @@
# Description
TODO
# How to use
- Add a Node2D node named "StateMachine" with the script state_machine.gd
- Initialize the states, initial state and conditions:
{{{
$StateMachine.add_state("idle")
$StateMachine.add_state("hurt")
$StateMachine.add_state("dead")
$StateMachine.set_init_state("idle")
$StateMachine.add_transition("idle", "hurt", [], "fire")
$StateMachine.add_transition("hurt", "dead", ["has_stuff_been_handled", "is_dead"])
$StateMachine.add_transition("hurt", "idle", ["has_stuff_been_handled"])
}}}
- Trigger an event
{{{
$StateMachine.trigger("fire")
}}}
- Add a condition: it's just a func returning a bool
{{{
def has_stuff_been_handled():
return true
}}}
- Add callbacks for state entering/update/exiting: just add the state name in on_XXXXX_state_YYYY()
{{{
func on_idle_state_enter():
pass
func on_idle_state_update(delta):
pass
func on_idle_state_exit():
pass
}}}
- Enabling debug mode (logs when changing states)
{{{
$StateMachine.set_debug_enabled(true)
}}}
- Get the current state
{{{
$StateMachine.get_current_state()
}}}
- Get the last known state (before the current one)
{{{
$StateMachine.get_last_state()
}}}
# Credits
icon: made by Freepik from https://www.flaticon.com, license: Creative Commons BY 3.0