credits.gd 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. extends MarginContainer
  2. class_name Credits
  3. @onready var main_menu: PackedScene = load("res://screens/main_menu.tscn")
  4. @onready var tab_container: TabContainer = $VBoxContainer/TabContainer
  5. @onready var game_tab: MarginContainer = $"VBoxContainer/TabContainer/The Last Shift"
  6. func _ready() -> void:
  7. var licenses: Dictionary = Engine.get_license_info()
  8. var dependencies: Array[Dictionary] = Engine.get_copyright_info()
  9. #for dependency in dependencies:
  10. # print(dependency)
  11. for dependency in dependencies:
  12. var tab = game_tab.duplicate() as MarginContainer
  13. tab.name = dependency["name"]
  14. var label = tab.get_node("ScrollContainer/RichTextLabel") as RichTextLabel
  15. label.text = ""
  16. for part in dependency["parts"]:
  17. for copyright in part["copyright"]:
  18. label.text += "Copyright © " + copyright + "\n"
  19. label.text += "\n"
  20. var used_licenses: String = part["license"]
  21. for license in licenses:
  22. used_licenses = used_licenses.replace(license, licenses[license] + "\n\n")
  23. label.text += used_licenses
  24. tab_container.add_child(tab)
  25. func _process(_delta: float) -> void:
  26. if Input.is_action_just_pressed("ui_cancel"):
  27. _on_back_button_pressed()
  28. func _on_back_button_pressed() -> void:
  29. get_tree().change_scene_to_packed(main_menu)
  30. func _on_rich_text_label_meta_clicked(meta: Variant) -> void:
  31. OS.shell_open(str(meta))