diff --git a/manager/event_manager/event_binder.gd b/manager/event_manager/event_binder.gd index 3907f1eb..d3aa31f4 100644 --- a/manager/event_manager/event_binder.gd +++ b/manager/event_manager/event_binder.gd @@ -16,7 +16,7 @@ class_name EventBinder extends Node @export_range(0, 10000, 1) var trigger_stage := 1 @export var trigger_set_stage_if_greater := true -var _local_enable_event_stage := 0 +var _local_updater_event_stage := 0 func _ready() -> void: @@ -27,8 +27,8 @@ func _ready() -> void: if not parent: printerr("[EventBinder] bind_enable is true but parent is null. path: %s" % get_path()) return - _local_enable_event_stage = EventManager.get_stage(updater_event) - _update_binding_state(_local_enable_event_stage) + _local_updater_event_stage = EventManager.get_stage(updater_event) + _update_binding_state(_local_updater_event_stage) EventManager.stage_updated.connect(_on_global_stage_updated) if not trigger_event.is_empty(): # connect trigger_mode signal @@ -56,7 +56,7 @@ func _on_happened() -> void: func _on_global_stage_updated(e: StringName, s: int): if e == updater_event: - _local_enable_event_stage = s + _local_updater_event_stage = s _update_binding_state(s) @@ -80,13 +80,18 @@ func _update_binding_state(stage: int): func _toggle_parent_visibility_with_ease(parent, show: bool): if parent is CanvasItem: - parent.visible = true - parent.modulate.a = 0.0 if show else 1.0 - var target_a = 1.0 if show else 0.0 - var tween = create_tween() - tween.tween_property(parent, "modulate:a", target_a, updater_ease_duration) - if not show: - tween.tween_callback(parent.hide) + if updater_ease_duration > 0.0: + if show: + parent.show() + var original_a = parent.modulate.a + var target_a = 1.0 if show else 0.0 + var tween = create_tween() + tween.tween_property(parent, "modulate:a", target_a, updater_ease_duration) + if not show: + tween.tween_callback(parent.hide) + tween.tween_callback(func(): parent.modulate.a = original_a) + else: + parent.visible = show func _auto_detect_mode():