Tales-of-PKMN/game/ui/splash_screen/splash_screen.gd

39 lines
1.1 KiB
GDScript

extends Control
@export var load_scene : PackedScene
@export var allow_skip : bool = true
@export var splash_screen_container: Node
@export_group("Timings")
@export var in_time : float = 0.5
@export var fade_in_time : float = 1.5
@export var pause_time : float = 1.5
@export var fade_out_time : float = 1.5
@export var out_time : float = 0.5
var splash_screens = []
func _ready() -> void:
get_screens()
fade()
func _unhandled_input(event: InputEvent) -> void:
if allow_skip and event.is_pressed():
get_tree().change_scene_to_packed(load_scene)
func get_screens() -> void:
splash_screens = splash_screen_container.get_children()
for screen in splash_screens:
screen.modulate.a = 0.0
func fade() -> void:
for screen in splash_screens:
var tween = self.create_tween()
tween.tween_interval(in_time)
tween.tween_property(screen, "modulate:a", 1.0, fade_in_time)
tween.tween_interval(pause_time)
tween.tween_property(screen, "modulate:a", 0.0, fade_out_time)
tween.tween_interval(out_time)
await tween.finished
get_tree().change_scene_to_packed(load_scene)