eco-state-machine's icon

eco-state-machine 1.1 Scripts 2.1 Community

Submitted by user Gokudomatic; MIT; 2017-09-13

Finite state machine script that supports timers, condition evaluation and imbricated statements.

This script has no depency and should be compatible with any Godot version.

Installation:
Copy the fsm.gd script file in your project.

Usage:
You don't need to change your existing code. Simply add this code where you need the machine :
onready var my_fsm=preload("fsm.gd").new()

my_fsm.add_state("state1")
my_fsm.add_state("whatever state")
my_fsm.add_link("state1","whatever state","condition",[self,"my_condition1","expected value to switch"])
my_fsm.set_state("state1")

func my_condition1():
return some_value

Then in a loop, like _process(delta), call :
my_fsm.process(delta)

To catch the signal when the current state changes:
my_fsm.connect("state_changed",self,"on_state_changed")

More documentation and examples on the Github page.


View files Download Submit an issue Recent Edits