Interface.gd 1.1 KB

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