40 lines
880 B
GDScript3
40 lines
880 B
GDScript3
|
extends Sprite2D
|
||
|
|
||
|
signal di_continue
|
||
|
|
||
|
# Called when the node enters the scene tree for the first time.
|
||
|
func _ready():
|
||
|
#var canvas = get_parent().get_node("CanvasLayer")
|
||
|
#await get_tree().create_timer(0.1).timeout
|
||
|
#get_parent().remove_child(self)
|
||
|
#canvas.add_child(self)
|
||
|
pass
|
||
|
|
||
|
var typing = false
|
||
|
|
||
|
func dialogue(new_text,icon,dur):
|
||
|
if typing == true:
|
||
|
typing = false
|
||
|
await di_continue
|
||
|
typing = true
|
||
|
var icons = $Icons.get_children()
|
||
|
for i in icons:
|
||
|
i.visible = false
|
||
|
if i.name == icon:
|
||
|
i.visible = true
|
||
|
var leng = len(new_text) + 1
|
||
|
$RichTextLabel.visible_characters = 0
|
||
|
$RichTextLabel.text = new_text
|
||
|
for i in leng:
|
||
|
if typing == false:
|
||
|
di_continue.emit()
|
||
|
$AudioStreamPlayer.stop()
|
||
|
return
|
||
|
$RichTextLabel.visible_characters = i
|
||
|
$AudioStreamPlayer.play()
|
||
|
$Timer.start(dur/leng)
|
||
|
await $Timer.timeout
|
||
|
typing = false
|
||
|
func _process(delta):
|
||
|
pass
|