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