extends Node
class_name FiniteStateMachine
var states : Dictionary = {}
var previousstate: int = -1
var state: int = -1 setget setstate
onready var parent: Character = getparent()
onready var animationplayer: AnimationPlayer = parent.get_node("AnimationPlayer")
func physicsprocess(delta: float) -> void:
if state != -1:
statelogic(delta)
var transition: int = gettransition()
if transition != -1:
set_state(transition)
func statelogic(_delte: float) -> void:
pass
func gettransition() -> int:
return -1
func addstate(newstate: String) -> void:
states[newstate] = states.size()
func setstates(newstate: int) -> void:
exitstates(state)
previousstate = state
state = newstate
enterstate(previous_state, state)
func enterstate(previousstates: int, _newstate : int) -> void:
pass
func exitstate(statedexited: int) -> void:
pass