A super easy and flexible PDA implementation.
A PDA is basically a finite state machine with a stack.
Just add the Machine node and fill in the export options.
A relative dependency is a child of the entity. Just type the name of the child in the inspector like so: "AnimationPlayer".
A global dependency can be any node, just tap de exported NodePath and select a node. If your Machine node is a child of the entity you can use whichever method you prefer.
To add a new state, create a new script that inherits anything.
Just use one of the templates. I recommend starting with the tutorial one.
For animations to work, just add any dependency of type AnimationPlayer.
The state buffer ensures that the stack never grows too large. (Just a buffer_size of 3 should be enough tho)
You can reference your dependencies (nodes in the scene tree) by just declaring them in the state script in snake case (e.g. animation_player), just name them in the regular PascalCase convention in the scene tree.
Your state names match your script name, just use PascalCase. (e. g. `push_state('Idle')` )