Tough_Crowd/godot/ui/overlays/fade_overlay.gd

32 lines
881 B
GDScript3
Raw Permalink Normal View History

2024-01-26 18:01:32 +00:00
class_name FadeOverlay
extends ColorRect
signal on_complete_fade_in
signal on_complete_fade_out
@export var fade_in_duration: float = 2.0
@export var fade_out_duration: float = 1.0
@export var auto_fade_in: bool = true
@export var minimum_opacity: float = 1.0
func _ready():
modulate.a = minimum_opacity
if auto_fade_in:
fade_in()
func fade_in():
var tween = create_tween().set_trans(Tween.TRANS_CUBIC)
tween.tween_property(self, "modulate", Color(modulate, 0.0), fade_in_duration)\
.finished.connect(_on_complete_fade_in)
func fade_out():
var tween = create_tween().set_trans(Tween.TRANS_CUBIC)
tween.tween_property(self, "modulate", Color(modulate, minimum_opacity), fade_out_duration)\
.finished.connect(_on_complete_fade_out)
func _on_complete_fade_out():
emit_signal("on_complete_fade_out")
func _on_complete_fade_in():
emit_signal("on_complete_fade_in")