-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDialogue.gd
37 lines (28 loc) · 904 Bytes
/
Dialogue.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class_name Dialogue
extends Control
onready var content := get_node("Text") as RichTextLabel
onready var type_timer := get_node("TypeTimer") as Timer
onready var voice_player := get_node("DialogueVoicePlayer") as AudioStreamPlayer
signal message_completed
var _playing_voice := false
func update_message(message: String) -> void:
content.bbcode_text = message
content.visible_characters = 0
type_timer.start()
_playing_voice = true
voice_player.play(0)
func _on_TypeTimer_timeout():
if content.visible_characters < content.text.length():
content.visible_characters += 1
else:
_playing_voice = false
type_timer.stop()
emit_signal("message_completed")
func _on_DialogueVoicePlayer_finished():
if _playing_voice:
voice_player.play(0) # Loop
func is_message_fully_visible() -> bool:
if content.visible_characters >= content.text.length():
return true
else:
return false