class_name BaseState
extends Node

@export var state_machine: PlayerStateMachine

func GetStateEnum() -> PlayerStateMachine.States:
	push_error("Unimplemented Method: BaseState.GetName")
	return PlayerStateMachine.States.IDLE


func GetAnimationBaseName() -> String:
	var state: String = PlayerStateMachine.States.keys()[GetStateEnum()]
	return state.to_lower()


func Enter(_extra_parameters: Dictionary) -> void:
	pass


func Exit() -> void:
	pass


func Update(_delta: float) -> void:
	pass


func IsActive() -> bool:
	return state_machine.GetCurrentStateEnum() == GetStateEnum()


func IsStateActionable() -> bool:
	return true
