From d727e3e520d73afdcea4f1e8265876623c05f52a Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Fri, 4 Jul 2025 23:00:25 +0200 Subject: refactor wip --- Game/States/StateManager.gd | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'Game/States/StateManager.gd') diff --git a/Game/States/StateManager.gd b/Game/States/StateManager.gd index 5a176e2..f1ce0d0 100644 --- a/Game/States/StateManager.gd +++ b/Game/States/StateManager.gd @@ -2,22 +2,27 @@ class_name StateManager extends Node -func _ready(): - Client.state = get_child(0) +signal state_changed(state: State) +var current_state: State -func _input(event: InputEvent) -> void: - Client.state._state_input(event) +@onready var state_default: StateDefault = $StateDefault +@onready var state_build: StateBuild = $StateBuild -func _unhandled_input(event: InputEvent) -> void: - Client.state._state_unhandled_input(event) +func _ready() -> void: + for node in get_children(): + node._state_disable() -func set_state(state: Variant): - if state is not State: - state = get_node(state) +func set_state(state: State): + if current_state: + current_state._state_exit() + current_state._state_disable() - Client.state._state_exit() - Client.state = state - Client.state._state_enter() + current_state = state + + current_state._state_enable() + current_state._state_enter() + + state_changed.emit(current_state) -- cgit v1.2.3