1extends Control
2
3var dialogue_node = null
4
5func _ready():
6	hide()
7
8
9func show_dialogue(player, dialogue):
10	show()
11	$Button.grab_focus()
12	dialogue_node = dialogue
13	for c in dialogue.get_signal_connection_list("dialogue_finished"):
14		if self == c.target:
15			dialogue_node.start_dialogue()
16			break
17			return
18	dialogue_node.connect("dialogue_started", player, "set_active", [false])
19	dialogue_node.connect("dialogue_finished", player, "set_active", [true])
20	dialogue_node.connect("dialogue_finished", self, "hide")
21	dialogue_node.connect("dialogue_finished", self, "_on_dialogue_finished", [player])
22	dialogue_node.start_dialogue()
23	$Name.text = dialogue_node.dialogue_name
24	$Text.text = dialogue_node.dialogue_text
25
26
27func _on_Button_button_up():
28	dialogue_node.next_dialogue()
29	$Name.text = dialogue_node.dialogue_name
30	$Text.text = dialogue_node.dialogue_text
31
32
33func _on_dialogue_finished(player):
34	dialogue_node.disconnect("dialogue_started", player, "set_active")
35	dialogue_node.disconnect("dialogue_finished", player, "set_active")
36	dialogue_node.disconnect("dialogue_finished", self, "hide")
37	dialogue_node.disconnect("dialogue_finished", self, "_on_dialogue_finished")
38