class_name BootsplashScene extends Control @export var fade_duration:float = 1.0 @export var stay_duration:float = 1.5 @export var node:PackedScene @export var next_scene:PackedScene @export var interuptable:bool = true @onready var control = %NodeContainer @onready var instance:Node2D = node.instantiate() func _ready(): instance.modulate.a = 0.0 control.add_child(instance) var tween = create_tween() tween.set_trans(Tween.TRANS_CUBIC) tween.set_ease(Tween.EASE_IN) tween.tween_property(instance, "modulate:a", 1.0, fade_duration)\ .from(0.0)\ .finished.connect(_fade_out) func _process(_delta): if interuptable and Input.is_action_just_pressed("exit"): _change_scene() func _fade_out(): var tween = create_tween() tween.set_trans(Tween.TRANS_CUBIC) tween.set_ease(Tween.EASE_IN) tween.tween_property(instance, "modulate:a", 0.0, fade_duration)\ .set_delay(stay_duration)\ .finished.connect(_change_scene) func _change_scene(): get_tree().change_scene_to_packed(next_scene)