class_name StateManager extends Node signal state_changed(state: State) var current_state: State @onready var state_default: StateDefault = $StateDefault @onready var state_build: StateBuild = $StateBuild func _ready() -> void: for node in get_children(): node._state_disable() func set_state(state: State): if current_state: current_state._state_exit() current_state._state_disable() current_state = state current_state._state_enable() current_state._state_enter() state_changed.emit(current_state)