From a52c2b828ad5ade0c2e3d61f687951b25a727c88 Mon Sep 17 00:00:00 2001 From: Spartan322 Date: Fri, 28 Apr 2023 04:22:15 -0400 Subject: Add some license conformance for Godot Add License Attribution for OpenVic2, Godot, FreeType, ENet, and mbed TLS in credits with redirect links to licenses Add contributor and donor list for Godot to credits Add link button for Godot, redirects to https://godotengine.org --- game/src/CreditsMenu/CreditsMenu.gd | 74 ++++++++++++++++++++++ game/src/CreditsMenu/CreditsMenu.tscn | 4 +- game/src/CreditsMenu/GodotEngineButton.gd | 4 ++ game/src/CreditsMenu/GodotEngineButton.tscn | 20 ++++++ game/src/CreditsMenu/logo_vertical_color_dark.svg | 1 + .../logo_vertical_color_dark.svg.import | 37 +++++++++++ 6 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 game/src/CreditsMenu/GodotEngineButton.gd create mode 100644 game/src/CreditsMenu/GodotEngineButton.tscn create mode 100644 game/src/CreditsMenu/logo_vertical_color_dark.svg create mode 100644 game/src/CreditsMenu/logo_vertical_color_dark.svg.import (limited to 'game/src/CreditsMenu') diff --git a/game/src/CreditsMenu/CreditsMenu.gd b/game/src/CreditsMenu/CreditsMenu.gd index 52c1711..0e9df6b 100644 --- a/game/src/CreditsMenu/CreditsMenu.gd +++ b/game/src/CreditsMenu/CreditsMenu.gd @@ -17,6 +17,9 @@ signal back_button_pressed @export_file("*.csv") var core_credits_path : String +@export +var godot_engine_scene : PackedScene + @export_group("Label Variants", "label_variants_") @export var label_variants_project : StringName @@ -114,10 +117,81 @@ func _add_project_credits(project : Dictionary) -> void: credits_list.add_child(project_credits_list) +func _add_godot_credits() -> void: + var godot_credits_list = VBoxContainer.new() + godot_credits_list.name = 'CreditsGodot' + var godot_engine = godot_engine_scene.instantiate() + godot_credits_list.add_child(godot_engine) + godot_credits_list.add_child(HSeparator.new()) + + var author_dict := Engine.get_author_info() + _add_label(godot_credits_list, "Contributors", label_variants_role) + + for role in author_dict: + var role_parent = VBoxContainer.new() + + for person in author_dict[role]: + _add_label(role_parent, person, label_variants_person) + + _add_label(godot_credits_list, role.replace("_", " ").capitalize(), label_variants_role) + godot_credits_list.add_child(role_parent) + godot_credits_list.add_child(HSeparator.new()) + + var donor_dict := Engine.get_donor_info() + _add_label(godot_credits_list, "Donors", label_variants_role) + + for role in donor_dict: + if donor_dict[role].size() == 0 or donor_dict[role][0].begins_with("None"): continue + var role_parent = VBoxContainer.new() + + for person in donor_dict[role]: + _add_label(role_parent, person, label_variants_person) + + _add_label(godot_credits_list, role.replace("_", " ").capitalize(), label_variants_role) + godot_credits_list.add_child(role_parent) + godot_credits_list.add_child(HSeparator.new()) + + credits_list.add_child(godot_credits_list) + +func _add_link_button(node : Node, text : String, url: String, type_variation : StringName) -> void: + var button := LinkButton.new() + button.name = 'LinkButton' + text + button.text = text + button.uri = url + button.size_flags_horizontal = SIZE_SHRINK_CENTER + button.theme_type_variation = type_variation + node.add_child(button) + +func _add_licenses() -> void: + var license_list = VBoxContainer.new() + license_list.name = 'Licenses' + _add_label(license_list, "Third-Party Licenses", label_variants_project) + license_list.add_child(HSeparator.new()) + + var license_info := { + "OpenVic2": ["GPLv3", "https://github.com/OpenVic2Project/OpenVic2/blob/main/LICENSE.md"], + "Godot": ["MIT", "https://github.com/godotengine/godot/blob/master/LICENSE.txt"], + "FreeType": ["FreeType License", "https://gitlab.freedesktop.org/freetype/freetype/-/blob/master/docs/FTL.TXT"], + "ENet": ["MIT", "http://enet.bespin.org/License.html"], + "mbed TLS": ["APLv2", "https://github.com/Mbed-TLS/mbedtls/blob/development/LICENSE"] + } + # Add additional licenses required for attribution here + # These licenses should also either be displayed or exported alongside this project + + for project in license_info: + _add_label(license_list, project, label_variants_role) + _add_link_button(license_list, license_info[project][0], license_info[project][1], label_variants_person) + license_list.add_child(HSeparator.new()) + + credits_list.add_child(license_list) + + # REQUIREMENTS: # * SS-17 func _ready(): _add_project_credits(_load_credit_file(core_credits_path)) + _add_godot_credits() + _add_licenses() # REQUIREMENTS: # * UI-38 diff --git a/game/src/CreditsMenu/CreditsMenu.tscn b/game/src/CreditsMenu/CreditsMenu.tscn index 6c5f36b..2d10d2e 100644 --- a/game/src/CreditsMenu/CreditsMenu.tscn +++ b/game/src/CreditsMenu/CreditsMenu.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://c8knthxkwj1uj"] +[gd_scene load_steps=4 format=3 uid="uid://c8knthxkwj1uj"] [ext_resource type="Theme" uid="uid://stfxt4hpsify" path="res://theme/credits_menu.tres" id="1_7y4l8"] [ext_resource type="Script" path="res://src/CreditsMenu/CreditsMenu.gd" id="1_csd7i"] +[ext_resource type="PackedScene" uid="uid://ddjbee5gj6bkv" path="res://src/CreditsMenu/GodotEngineButton.tscn" id="3_fl02a"] [node name="CreditsMenu" type="Control" node_paths=PackedStringArray("credits_list")] editor_description = "UI-34" @@ -14,6 +15,7 @@ grow_vertical = 2 theme = ExtResource("1_7y4l8") script = ExtResource("1_csd7i") core_credits_path = "res://common/credits.csv" +godot_engine_scene = ExtResource("3_fl02a") label_variants_project = &"ProjectLabel" label_variants_role = &"RoleLabel" label_variants_person = &"PersonLabel" diff --git a/game/src/CreditsMenu/GodotEngineButton.gd b/game/src/CreditsMenu/GodotEngineButton.gd new file mode 100644 index 0000000..ca3a958 --- /dev/null +++ b/game/src/CreditsMenu/GodotEngineButton.gd @@ -0,0 +1,4 @@ +extends Button + +func _on_pressed(): + OS.shell_open("https://godotengine.org") diff --git a/game/src/CreditsMenu/GodotEngineButton.tscn b/game/src/CreditsMenu/GodotEngineButton.tscn new file mode 100644 index 0000000..8b0c46b --- /dev/null +++ b/game/src/CreditsMenu/GodotEngineButton.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=3 uid="uid://ddjbee5gj6bkv"] + +[ext_resource type="Texture2D" uid="uid://rh7l4xuh4ali" path="res://src/CreditsMenu/logo_vertical_color_dark.svg" id="1_b0brk"] +[ext_resource type="Script" path="res://src/CreditsMenu/GodotEngineButton.gd" id="3_gi8fv"] + +[node name="GodotEngineButton" type="Button"] +custom_minimum_size = Vector2(0, 200) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 3 +icon = ExtResource("1_b0brk") +flat = true +icon_alignment = 1 +expand_icon = true +script = ExtResource("3_gi8fv") + +[connection signal="pressed" from="." to="." method="_on_pressed"] diff --git a/game/src/CreditsMenu/logo_vertical_color_dark.svg b/game/src/CreditsMenu/logo_vertical_color_dark.svg new file mode 100644 index 0000000..00e50cd --- /dev/null +++ b/game/src/CreditsMenu/logo_vertical_color_dark.svg @@ -0,0 +1 @@ + diff --git a/game/src/CreditsMenu/logo_vertical_color_dark.svg.import b/game/src/CreditsMenu/logo_vertical_color_dark.svg.import new file mode 100644 index 0000000..a4fb09a --- /dev/null +++ b/game/src/CreditsMenu/logo_vertical_color_dark.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rh7l4xuh4ali" +path="res://.godot/imported/logo_vertical_color_dark.svg-1167b3ce62f0747c0e76b17bdbb9f218.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/CreditsMenu/logo_vertical_color_dark.svg" +dest_files=["res://.godot/imported/logo_vertical_color_dark.svg-1167b3ce62f0747c0e76b17bdbb9f218.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false -- cgit v1.2.3-56-ga3b1