From 70f32566e30c21b46b9482e10016d7f872403ac5 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Tue, 9 Sep 2025 16:20:34 +0100 Subject: [PATCH 01/10] Storybook: Fix ribbon height The dialogue balloon scene sets a minimum height of 64px on the ribbon. Be consistent. --- scenes/menus/storybook/components/storybook_page.tscn | 1 + 1 file changed, 1 insertion(+) diff --git a/scenes/menus/storybook/components/storybook_page.tscn b/scenes/menus/storybook/components/storybook_page.tscn index 0eeb8e868..9bcc05dcb 100644 --- a/scenes/menus/storybook/components/storybook_page.tscn +++ b/scenes/menus/storybook/components/storybook_page.tscn @@ -20,6 +20,7 @@ script = ExtResource("1_jl23h") layout_mode = 2 [node name="TitleBox" type="PanelContainer" parent="VBoxContainer"] +custom_minimum_size = Vector2(0, 64) layout_mode = 2 size_flags_horizontal = 0 theme_type_variation = &"PlayerRibbon" From 8023c92ae9e282f36517e95594f3a9cdfbb6a7d8 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Tue, 9 Sep 2025 16:27:23 +0100 Subject: [PATCH 02/10] theme: Reduce font sizes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When we switched the game's base resolution from 1920×1080 to 1280×720, we did not adjust the font size to compensate. The new resolution is 2/3 of the old resolution in both axes. The previous font only had one size, and we were using it at 2× that size. Halving it to its natural size looked too small against the scroll assets. Having switched to a font that has a variety of sizes, we can now reduce its size by approximately 1/3: - The default font was Jersey-20 at 1×. Change it to Jersey-15. Since Jersey-20 is slightly smaller than the old font was, this works out at almost exactly 2/3 the size of m6x11plus. - BigFlatButton (used for the buttons on the main menu) was Jersey-20 at 2×. Change it to Jersey-25 at 1×. Helps https://github.com/endlessm/threadbare/issues/1136 --- scenes/ui_elements/components/theme.tres | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scenes/ui_elements/components/theme.tres b/scenes/ui_elements/components/theme.tres index b088a491a..05a4cf14d 100644 --- a/scenes/ui_elements/components/theme.tres +++ b/scenes/ui_elements/components/theme.tres @@ -1,14 +1,15 @@ -[gd_resource type="Theme" load_steps=26 format=3 uid="uid://cvitou84ni7qe"] +[gd_resource type="Theme" load_steps=27 format=3 uid="uid://cvitou84ni7qe"] [ext_resource type="Texture2D" uid="uid://dv7kcbngjjwq7" path="res://assets/third_party/tiny-swords/UI/Buttons/Button_Blue_3Slides.png" id="1_0xtm5"] [ext_resource type="Texture2D" uid="uid://bxk0fu4vv6wt2" path="res://assets/third_party/tiny-swords/UI/Buttons/Button_Hover_3Slides.png" id="1_1romn"] +[ext_resource type="FontFile" uid="uid://h5l8lrmk1r02" path="res://assets/third_party/fonts/jersey/Jersey25-Regular.ttf" id="1_cjtkl"] [ext_resource type="Texture2D" uid="uid://bqe8u2t2tsoma" path="res://assets/third_party/tiny-swords/UI/Buttons/Button_Disable_3Slides.png" id="1_rcupm"] [ext_resource type="Texture2D" uid="uid://rwt2v0hex5nm" path="res://assets/third_party/tiny-swords/UI/Ribbons/Ribbon_Yellow_3Slides.png" id="1_rtjv3"] [ext_resource type="Texture2D" uid="uid://dcum6i8n2paam" path="res://assets/third_party/tiny-swords/UI/Buttons/Button_Blue_3Slides_Pressed.png" id="4_si72l"] [ext_resource type="Texture2D" uid="uid://ccavio2v8sk7c" path="res://assets/third_party/tiny-swords/UI/Banners/Carved_3Slides.png" id="5_7k42u"] [ext_resource type="Texture2D" uid="uid://c3yokak1jgx7" path="res://assets/third_party/tiny-swords/UI/Banners/Banner_Vertical.png" id="5_mu1ca"] [ext_resource type="Texture2D" uid="uid://1po5xmfs16ot" path="res://assets/third_party/tiny-swords/UI/Ribbons/Ribbon_BlueLight_3Slides.png" id="7_mtpqe"] -[ext_resource type="FontFile" uid="uid://c3bb7lmvdqc5e" path="res://assets/third_party/fonts/jersey/Jersey20-Regular.ttf" id="10_cjtkl"] +[ext_resource type="FontFile" uid="uid://db8kp7xkv7gyn" path="res://assets/third_party/fonts/jersey/Jersey15-Regular.ttf" id="9_ig61n"] [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_iy6d2"] texture = ExtResource("1_rcupm") @@ -139,10 +140,11 @@ axis_stretch_horizontal = 2 axis_stretch_vertical = 2 [resource] -default_font = ExtResource("10_cjtkl") -default_font_size = 34 +default_font = ExtResource("9_ig61n") +default_font_size = 27 BigFlatButton/base_type = &"FlatButton" -BigFlatButton/font_sizes/font_size = 68 +BigFlatButton/font_sizes/font_size = 41 +BigFlatButton/fonts/font = ExtResource("1_cjtkl") Button/colors/font_color = Color(0.12, 0.12, 0.12, 1) Button/colors/font_disabled_color = Color(0.12, 0.12, 0.12, 0.501961) Button/colors/font_focus_color = Color(0.05, 0.05, 0.05, 1) From c5daceb85a996cbcb927b71294b2651bf0787b69 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 10:15:28 +0100 Subject: [PATCH 03/10] theme: Reduce RichTextLabel line separation We have reduced the font size to approximately 66% of its former size, so we should at least reduce the line separation proportionately. But to my eye, reducing from 9px to 6px is still too spacious. Reduce it further to 3px. --- scenes/ui_elements/components/theme.tres | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenes/ui_elements/components/theme.tres b/scenes/ui_elements/components/theme.tres index 05a4cf14d..140cf92d1 100644 --- a/scenes/ui_elements/components/theme.tres +++ b/scenes/ui_elements/components/theme.tres @@ -190,5 +190,5 @@ PanelContainer/styles/panel = SubResource("StyleBoxTexture_mu1ca") PlayerRibbon/base_type = &"PanelContainer" PlayerRibbon/styles/panel = SubResource("StyleBoxTexture_qmeow") RichTextLabel/colors/default_color = Color(0, 0, 0, 1) -RichTextLabel/constants/line_separation = 9 +RichTextLabel/constants/line_separation = 3 VBoxContainer/constants/separation = 32 From fb0cc99dd91b06d02f0f2a8f0c957342f94f3d26 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 10:31:24 +0100 Subject: [PATCH 04/10] theme: Reduce PanelContainer left and right margins We have less space to spare at 720p. --- scenes/ui_elements/components/theme.tres | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scenes/ui_elements/components/theme.tres b/scenes/ui_elements/components/theme.tres index 140cf92d1..7add11a82 100644 --- a/scenes/ui_elements/components/theme.tres +++ b/scenes/ui_elements/components/theme.tres @@ -119,9 +119,9 @@ axis_stretch_horizontal = 2 axis_stretch_vertical = 2 [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_mu1ca"] -content_margin_left = 96.0 +content_margin_left = 64.0 content_margin_top = 64.0 -content_margin_right = 96.0 +content_margin_right = 64.0 content_margin_bottom = 64.0 texture = ExtResource("5_mu1ca") texture_margin_left = 64.0 From aa6ad05ec54444337da45f7d4dbbdccf157b6d0a Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 10:37:07 +0100 Subject: [PATCH 05/10] theme: Reduce VBox/Grid separation This is roughly 2/3 of the old value, matching the reduction in the game's base resolution. --- scenes/ui_elements/components/theme.tres | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scenes/ui_elements/components/theme.tres b/scenes/ui_elements/components/theme.tres index 7add11a82..49d79f64f 100644 --- a/scenes/ui_elements/components/theme.tres +++ b/scenes/ui_elements/components/theme.tres @@ -172,8 +172,8 @@ FlatButton/styles/normal = SubResource("StyleBoxTexture_bbim3") FlatButton/styles/pressed = SubResource("StyleBoxTexture_3vcfk") FlatNextButton/base_type = &"FlatButton" FlatNextButton/styles/normal = SubResource("StyleBoxTexture_qndbo") -GridContainer/constants/h_separation = 32 -GridContainer/constants/v_separation = 32 +GridContainer/constants/h_separation = 21 +GridContainer/constants/v_separation = 21 HintLabel/base_type = &"Label" HintLabel/colors/font_color = Color(1, 1, 1, 1) HintLabel/colors/font_shadow_color = Color(0, 0, 0, 1) @@ -191,4 +191,4 @@ PlayerRibbon/base_type = &"PanelContainer" PlayerRibbon/styles/panel = SubResource("StyleBoxTexture_qmeow") RichTextLabel/colors/default_color = Color(0, 0, 0, 1) RichTextLabel/constants/line_separation = 3 -VBoxContainer/constants/separation = 32 +VBoxContainer/constants/separation = 21 From 9cdb0d650bb83a575841c27e696af3ec174bc34e Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 10:38:11 +0100 Subject: [PATCH 06/10] dialogue: Reduce balloon size & spacing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since changing the game's base resolution, dialogue balloons have taken up way too much of the viewport. Reducing the font size and box margins/padding have helped a bit but we can go further: - Reduce the minimum size of the balloon by 1/3 in the y-axis and 1/5 in the x-axis. To my eye, reducing the minimum width to 320 looked too narrow. - Reduce the padding around the Next button by eliminating the HBoxContainer and MarginContainer it was packed in. Adjust its horizontal container sizing to shrink end to preserve its right-aligned position; and the script to show and hide the button rather than the now-removed container. The assets from Tiny Swords that we are using for the balloons (and other UI elements) are the limiting factor in making this much smaller, since they are based around a 64×64 grid. In future I think we'll want to replace them. --- scenes/ui_elements/dialogue/balloon.tscn | 17 +++-------------- .../ui_elements/dialogue/components/balloon.gd | 8 ++------ 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/scenes/ui_elements/dialogue/balloon.tscn b/scenes/ui_elements/dialogue/balloon.tscn index 28edf3c5c..0554cc1d5 100644 --- a/scenes/ui_elements/dialogue/balloon.tscn +++ b/scenes/ui_elements/dialogue/balloon.tscn @@ -24,7 +24,7 @@ offset_right = 384.0 offset_bottom = 384.0 [node name="VBoxContainer" type="VBoxContainer" parent="Balloon/PanelContainer"] -custom_minimum_size = Vector2(480, 192) +custom_minimum_size = Vector2(384, 128) layout_mode = 2 [node name="CharacterPanel" type="PanelContainer" parent="Balloon/PanelContainer/VBoxContainer"] @@ -48,21 +48,10 @@ size_flags_vertical = 3 text = "¡Ah! ¿Another wanderer? It’s been a while siñce aňyone çame löõkiŋ for instead of «treaßure»." skip_action = &"dialogue_skip" -[node name="HBoxContainer" type="HBoxContainer" parent="Balloon/PanelContainer/VBoxContainer"] -layout_mode = 2 -alignment = 2 - -[node name="NextButtonContainer" type="MarginContainer" parent="Balloon/PanelContainer/VBoxContainer/HBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_constants/margin_left = 0 -theme_override_constants/margin_top = 0 -theme_override_constants/margin_right = 0 -theme_override_constants/margin_bottom = 30 - -[node name="NextButton" type="Button" parent="Balloon/PanelContainer/VBoxContainer/HBoxContainer/NextButtonContainer"] +[node name="NextButton" type="Button" parent="Balloon/PanelContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 8 theme_type_variation = &"FlatNextButton" text = "next >" diff --git a/scenes/ui_elements/dialogue/components/balloon.gd b/scenes/ui_elements/dialogue/components/balloon.gd index 424a3c149..47c406585 100644 --- a/scenes/ui_elements/dialogue/components/balloon.gd +++ b/scenes/ui_elements/dialogue/components/balloon.gd @@ -62,10 +62,6 @@ var _player_name: String = "" ## The label showing the currently spoken dialogue @onready var dialogue_label: DialogueLabel = %DialogueLabel -## The “Next” button container, visible when the current line is complete and there are -## no response choices. -@onready var next_button_container: MarginContainer = %NextButtonContainer - ## The “Next” button, to connect signals. @onready var next_button: Button = %NextButton @@ -140,7 +136,7 @@ func apply_dialogue_line() -> void: responses_menu.hide() responses_menu.responses = dialogue_line.responses - next_button_container.hide() + next_button.hide() # Show our balloon balloon.show() @@ -169,7 +165,7 @@ func apply_dialogue_line() -> void: is_waiting_for_input = true balloon.focus_mode = Control.FOCUS_ALL balloon.grab_focus() - next_button_container.show() + next_button.show() ## Go to the next line From 0e838056ec6eddf31306bc87b165767644112c20 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 10:51:51 +0100 Subject: [PATCH 07/10] credits: Reduce margins We have less space after switching to 720p. Remove the MarginContainer that previously surrounded all the controls. Make the Back button smaller. Fixes https://github.com/endlessm/threadbare/issues/1142 --- scenes/menus/title/components/credits.tscn | 60 ++++++++++------------ 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/scenes/menus/title/components/credits.tscn b/scenes/menus/title/components/credits.tscn index 6c8c8506c..0542b93d7 100644 --- a/scenes/menus/title/components/credits.tscn +++ b/scenes/menus/title/components/credits.tscn @@ -13,47 +13,39 @@ grow_vertical = 2 theme = ExtResource("1_gmidg") script = ExtResource("2_3tvx1") -[node name="MarginContainer" type="MarginContainer" parent="."] +[node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -scale = Vector2(1, 1.03033) -theme_override_constants/margin_left = 64 -theme_override_constants/margin_top = 32 -theme_override_constants/margin_right = 64 -theme_override_constants/margin_bottom = 64 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] -layout_mode = 2 - -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 alignment = 1 -[node name="Authors" type="PanelContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"] +[node name="Authors" type="PanelContainer" parent="VBoxContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/Authors"] +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/Authors"] layout_mode = 2 -[node name="TitlePanel" type="PanelContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/Authors/VBoxContainer"] +[node name="TitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/Authors/VBoxContainer"] custom_minimum_size = Vector2(0, 64) layout_mode = 2 size_flags_horizontal = 0 theme_type_variation = &"PlayerRibbon" -[node name="Title" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/Authors/VBoxContainer/TitlePanel"] +[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/Authors/VBoxContainer/TitlePanel"] layout_mode = 2 mouse_filter = 1 text = "Authors" horizontal_alignment = 1 -[node name="Body" type="RichTextLabel" parent="MarginContainer/VBoxContainer/HBoxContainer/Authors/VBoxContainer"] +[node name="Body" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/Authors/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 bbcode_enabled = true @@ -72,59 +64,59 @@ Stephen Reid Tobías Romero Will Thompson" -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 -[node name="Art" type="PanelContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="Art" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 size_flags_stretch_ratio = 0.72 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Art"] +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art"] layout_mode = 2 -[node name="TitlePanel" type="PanelContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] +[node name="TitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] custom_minimum_size = Vector2(0, 64) layout_mode = 2 size_flags_horizontal = 0 theme_type_variation = &"NPCRibbon" -[node name="Title" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/TitlePanel"] +[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/TitlePanel"] layout_mode = 2 mouse_filter = 1 text = "Art and Music" horizontal_alignment = 1 -[node name="Body" type="RichTextLabel" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] +[node name="Body" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 bbcode_enabled = true text = "Additional original art by [url=https://pixelfrog-assets.itch.io/]Pixel Frog[/url] Original music by John Wright" -[node name="ThirdPartyComponents" type="PanelContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="ThirdPartyComponents" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents"] +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents"] layout_mode = 2 -[node name="TitlePanel" type="PanelContainer" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer"] +[node name="TitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer"] custom_minimum_size = Vector2(0, 64) layout_mode = 2 size_flags_horizontal = 0 theme_type_variation = &"NPCRibbon" -[node name="Title" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/TitlePanel"] +[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/TitlePanel"] layout_mode = 2 mouse_filter = 1 text = "Third-Party Components" horizontal_alignment = 1 -[node name="Body" type="RichTextLabel" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer"] +[node name="Body" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 bbcode_enabled = true @@ -133,17 +125,17 @@ Uses [url=https://dialogue.nathanhoad.net/]Godot Dialogue Manager[/url] by Natha Uses [url=https://dialogue.nathanhoad.net/]Godot Git Describe[/url] by Joseph Michael Ware ([url=https://github.com/zibetnu/godot-git-describe/blob/main/LICENSE]MIT license[/url]) Uses [url=https://github.com/scfried/soft-type-jersey]Jersey[/url] by Sarah Cadigan-Fried and The Soft Type Project Authors ([url=https://github.com/scfried/soft-type-jersey?tab=OFL-1.1-1-ov-file]OFL-1.1 license[/url])" -[node name="BackButton" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="BackButton" type="Button" parent="VBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 -theme_type_variation = &"BigFlatButton" +theme_type_variation = &"FlatButton" text = "< back" flat = true -[connection signal="meta_clicked" from="MarginContainer/VBoxContainer/HBoxContainer/Authors/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] -[connection signal="meta_clicked" from="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] -[connection signal="visibility_changed" from="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/Body" to="." method="_on_visibility_changed"] -[connection signal="meta_clicked" from="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] -[connection signal="visibility_changed" from="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/Body" to="." method="_on_visibility_changed"] -[connection signal="pressed" from="MarginContainer/VBoxContainer/BackButton" to="." method="_on_back_button_pressed"] +[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/Authors/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] +[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] +[connection signal="visibility_changed" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/Body" to="." method="_on_visibility_changed"] +[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] +[connection signal="visibility_changed" from="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/Body" to="." method="_on_visibility_changed"] +[connection signal="pressed" from="VBoxContainer/BackButton" to="." method="_on_back_button_pressed"] From c39c4b229cac8dba53b55cf3bbf260243af7feed Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 10:56:10 +0100 Subject: [PATCH 08/10] credits: Merge right-hand panels Previously the right column of the credits page had two sections in separate scrolls. This took up so much vertical space with margins and padding that neither of the RichTextLabels within could be read without scrolling. Merge them. Set the longer of the two (the third-party components section) to have twice the stretch ratio of the Art & Music section, so that both fit entirely without scrolling. This page is still a placeholder but at least players can now see, without scrolling, all of the credits that we are required to show! --- scenes/menus/title/components/credits.tscn | 29 ++++++++-------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/scenes/menus/title/components/credits.tscn b/scenes/menus/title/components/credits.tscn index 0542b93d7..d7b53cdb1 100644 --- a/scenes/menus/title/components/credits.tscn +++ b/scenes/menus/title/components/credits.tscn @@ -77,48 +77,41 @@ size_flags_stretch_ratio = 0.72 [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art"] layout_mode = 2 -[node name="TitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] +[node name="ArtTitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] custom_minimum_size = Vector2(0, 64) layout_mode = 2 size_flags_horizontal = 0 theme_type_variation = &"NPCRibbon" -[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/TitlePanel"] +[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/ArtTitlePanel"] layout_mode = 2 mouse_filter = 1 text = "Art and Music" horizontal_alignment = 1 -[node name="Body" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] +[node name="ArtBody" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 bbcode_enabled = true text = "Additional original art by [url=https://pixelfrog-assets.itch.io/]Pixel Frog[/url] Original music by John Wright" -[node name="ThirdPartyComponents" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 - -[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents"] -layout_mode = 2 - -[node name="TitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer"] +[node name="ThirdPartyTitlePanel" type="PanelContainer" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] custom_minimum_size = Vector2(0, 64) layout_mode = 2 size_flags_horizontal = 0 theme_type_variation = &"NPCRibbon" -[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/TitlePanel"] +[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/ThirdPartyTitlePanel"] layout_mode = 2 mouse_filter = 1 text = "Third-Party Components" horizontal_alignment = 1 -[node name="Body" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer"] +[node name="ThirdPartyBody" type="RichTextLabel" parent="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 +size_flags_stretch_ratio = 2.0 bbcode_enabled = true text = "Built with [url=https://godotengine.org/]Godot Engine[/url] ([url=https://godotengine.org/license/]MIT license[/url]) Uses [url=https://dialogue.nathanhoad.net/]Godot Dialogue Manager[/url] by Nathan Hoad ([url=https://github.com/nathanhoad/godot_dialogue_manager/blob/main/LICENSE]MIT license[/url]) @@ -134,8 +127,8 @@ text = "< back" flat = true [connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/Authors/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] -[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] -[connection signal="visibility_changed" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/Body" to="." method="_on_visibility_changed"] -[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/Body" to="." method="_on_rich_text_label_meta_clicked"] -[connection signal="visibility_changed" from="VBoxContainer/HBoxContainer/VBoxContainer/ThirdPartyComponents/VBoxContainer/Body" to="." method="_on_visibility_changed"] +[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/ArtBody" to="." method="_on_rich_text_label_meta_clicked"] +[connection signal="visibility_changed" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/ArtBody" to="." method="_on_visibility_changed"] +[connection signal="meta_clicked" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/ThirdPartyBody" to="." method="_on_rich_text_label_meta_clicked"] +[connection signal="visibility_changed" from="VBoxContainer/HBoxContainer/VBoxContainer/Art/VBoxContainer/ThirdPartyBody" to="." method="_on_visibility_changed"] [connection signal="pressed" from="VBoxContainer/BackButton" to="." method="_on_back_button_pressed"] From 2bff30a6d21f35a9a8f126092fb18570cea9541d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Wed, 10 Sep 2025 11:14:45 -0300 Subject: [PATCH 09/10] theme: Reduce transparent margin around PanelContainer The scroll/parchment texture we are using for PanelContainer's background has around 30px of transparent border. For PanelContainer we would prefer to use this space as margin between the edge of the visible parchment and its contents. Expand the margin by 16px in each axis. Reduce the content margin at the top by 16px to compensate - the shape of the scroll means there is additional margin there. Co-authored-by: Will Thompson --- scenes/ui_elements/components/theme.tres | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scenes/ui_elements/components/theme.tres b/scenes/ui_elements/components/theme.tres index 49d79f64f..7c2da78e5 100644 --- a/scenes/ui_elements/components/theme.tres +++ b/scenes/ui_elements/components/theme.tres @@ -120,7 +120,7 @@ axis_stretch_vertical = 2 [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_mu1ca"] content_margin_left = 64.0 -content_margin_top = 64.0 +content_margin_top = 48.0 content_margin_right = 64.0 content_margin_bottom = 64.0 texture = ExtResource("5_mu1ca") @@ -128,6 +128,10 @@ texture_margin_left = 64.0 texture_margin_top = 64.0 texture_margin_right = 64.0 texture_margin_bottom = 64.0 +expand_margin_left = 16.0 +expand_margin_top = 16.0 +expand_margin_right = 16.0 +expand_margin_bottom = 16.0 axis_stretch_horizontal = 1 axis_stretch_vertical = 1 From 3a8a4f777af9ee457e4a63f348204170a6e5fa34 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Wed, 10 Sep 2025 15:20:40 +0100 Subject: [PATCH 10/10] dialogue: Reduce minimum balloon size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due to the previous change to effectively add 16px to the content margins for PanelContainer, we can reduce the minimum width of the balloon by 2×16px to compensate. In addition, hide the ResponsesMenu container, and update the offsets saved to the PanelContainer node in the scene. Previously the saved size included both the "Next" button and 1 row of responses; now, the saved size has space for the speaker's name, 3 lines of dialogue, and a next button. This means that in most cases, the balloon does not need to grow when the "Next" button appears or between lines of dialogue. --- scenes/ui_elements/dialogue/balloon.tscn | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scenes/ui_elements/dialogue/balloon.tscn b/scenes/ui_elements/dialogue/balloon.tscn index 0554cc1d5..93fc980ca 100644 --- a/scenes/ui_elements/dialogue/balloon.tscn +++ b/scenes/ui_elements/dialogue/balloon.tscn @@ -20,11 +20,11 @@ theme = ExtResource("2_pfnde") [node name="PanelContainer" type="PanelContainer" parent="Balloon"] layout_mode = 0 -offset_right = 384.0 -offset_bottom = 384.0 +offset_right = 480.0 +offset_bottom = 359.0 [node name="VBoxContainer" type="VBoxContainer" parent="Balloon/PanelContainer"] -custom_minimum_size = Vector2(384, 128) +custom_minimum_size = Vector2(352, 128) layout_mode = 2 [node name="CharacterPanel" type="PanelContainer" parent="Balloon/PanelContainer/VBoxContainer"] @@ -57,6 +57,7 @@ text = "next >" [node name="ResponsesMenu" type="VBoxContainer" parent="Balloon/PanelContainer/VBoxContainer" node_paths=PackedStringArray("response_template")] unique_name_in_owner = true +visible = false layout_mode = 2 size_flags_vertical = 8 theme_override_constants/separation = 2