49 lines
1.1 KiB
GDScript3
49 lines
1.1 KiB
GDScript3
|
extends TextureRect
|
||
|
|
||
|
var native_dialogic_background = true
|
||
|
var tween
|
||
|
|
||
|
func _ready():
|
||
|
expand = true
|
||
|
name = 'Background'
|
||
|
anchor_right = 1
|
||
|
anchor_bottom = 1
|
||
|
if DialogicResources.get_settings_value('dialog', 'stretch_backgrounds', true):
|
||
|
stretch_mode = TextureRect.STRETCH_SCALE
|
||
|
else:
|
||
|
stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_COVERED
|
||
|
show_behind_parent = true
|
||
|
mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||
|
|
||
|
func _init():
|
||
|
tween = Tween.new()
|
||
|
add_child(tween)
|
||
|
|
||
|
|
||
|
func fade_in(time = 1):
|
||
|
modulate = Color(1, 1,1,0)
|
||
|
tween.interpolate_property(self, "modulate",
|
||
|
null, Color(1,1,1,1), time,
|
||
|
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
||
|
tween.start()
|
||
|
|
||
|
|
||
|
func fade_out(time = 1):
|
||
|
if tween:
|
||
|
tween.connect('tween_all_completed', self, '_on_tween_over')
|
||
|
tween.interpolate_property(self, "modulate",
|
||
|
Color(1,1,1,1), Color(1,1,1,0), time,
|
||
|
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
||
|
tween.start()
|
||
|
else:
|
||
|
_on_tween_over()
|
||
|
|
||
|
func remove_with_delay(time =1):
|
||
|
var timer = Timer.new()
|
||
|
timer.connect("timeout", self, "queue_free")
|
||
|
add_child(timer)
|
||
|
timer.start(time+0.1)
|
||
|
|
||
|
func _on_tween_over():
|
||
|
queue_free()
|