From 65f1b51ddf3d6109a1c32886d944d56033a2b364 Mon Sep 17 00:00:00 2001 From: Carenalga Date: Mon, 6 Jan 2025 17:23:26 -0500 Subject: [PATCH] refs #373: Create DialogueAdvancement component with better feedback. This component uses a CheckButton with two labels so players can have a better understanding of the current dialogue advancement mode. --- .../dialogue_advancement.gd | 38 ++++++++++++ .../dialogue_advancement.tscn | 57 ++++++++++++++++++ .../dialogue_advancement_check_button.png | Bin 0 -> 150 bytes .../simple_click_settings_popup.gd | 9 --- .../simple_click_settings_popup.tscn | 12 ++-- 5 files changed, 99 insertions(+), 17 deletions(-) create mode 100644 addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.gd create mode 100644 addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.tscn create mode 100644 addons/popochiu/engine/objects/gui/components/dialogue_advancement/images/dialogue_advancement_check_button.png diff --git a/addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.gd b/addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.gd new file mode 100644 index 00000000..d7fc0c43 --- /dev/null +++ b/addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.gd @@ -0,0 +1,38 @@ +extends Control + +@onready var input_button: LinkButton = $InputButton +@onready var manual: Label = %Manual +@onready var continue_mode: CheckButton = %ContinueMode +@onready var auto: Label = %Auto + + +#region Godot ###################################################################################### +func _ready() -> void: + # Set default values + input_button.button_pressed = PopochiuUtils.e.settings.auto_continue_text + continue_mode.button_pressed = PopochiuUtils.e.settings.auto_continue_text + _update_labels() + + # Connect to children signals + input_button.toggled.connect(_on_toggled) + + +#endregion + +#region Private #################################################################################### +func _update_labels() -> void: + if input_button.button_pressed: + manual.modulate.a = 0.5 + auto.modulate.a = 1.0 + else: + manual.modulate.a = 1.0 + auto.modulate.a = 0.5 + + +func _on_toggled(toggled_on: bool) -> void: + PopochiuUtils.e.settings.auto_continue_text = toggled_on + continue_mode.button_pressed = toggled_on + _update_labels() + + +#endregion diff --git a/addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.tscn b/addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.tscn new file mode 100644 index 00000000..a0b1aa98 --- /dev/null +++ b/addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=6 format=3 uid="uid://clhnbnew4ydpc"] + +[ext_resource type="Texture2D" uid="uid://cm5ik18o3ragq" path="res://addons/popochiu/engine/objects/gui/components/dialogue_advancement/images/dialogue_advancement_check_button.png" id="1_pbw0k"] +[ext_resource type="Theme" uid="uid://dpequqav4rjaf" path="res://addons/popochiu/engine/objects/gui/resources/base_gui_theme.tres" id="1_woi6t"] +[ext_resource type="Script" path="res://addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.gd" id="2_ju60a"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_eca4m"] +atlas = ExtResource("1_pbw0k") +region = Rect2(26, 0, 26, 13) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ivvq"] +atlas = ExtResource("1_pbw0k") +region = Rect2(0, 0, 26, 13) + +[node name="DialogueAdvancement" type="Control" groups=["popochiu_gui_component"]] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_woi6t") +script = ExtResource("2_ju60a") + +[node name="InputButton" type="LinkButton" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +toggle_mode = true + +[node name="HBoxContainer" type="HBoxContainer" parent="InputButton"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Manual" type="Label" parent="InputButton/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Manual" + +[node name="ContinueMode" type="CheckButton" parent="InputButton/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +mouse_filter = 2 +theme_override_icons/checked = SubResource("AtlasTexture_eca4m") +theme_override_icons/unchecked = SubResource("AtlasTexture_1ivvq") + +[node name="Auto" type="Label" parent="InputButton/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Auto" diff --git a/addons/popochiu/engine/objects/gui/components/dialogue_advancement/images/dialogue_advancement_check_button.png b/addons/popochiu/engine/objects/gui/components/dialogue_advancement/images/dialogue_advancement_check_button.png new file mode 100644 index 0000000000000000000000000000000000000000..4a104dbf095a06013d78cfc88d03630ea95e2ff6 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^CLlHk8<2d)>)QvU7>k44ofy`glX(f`1bDhQhIn)) z|M~a#eSO void: # Set default values text_speed.value = 0.1 - PopochiuUtils.e.text_speed - continue_mode.selected = 0 if PopochiuUtils.e.settings.auto_continue_text else 1 text_speed_label.text = "%.2fx" % PopochiuUtils.e.text_speed - continue_mode.get_popup().canvas_item_default_texture_filter =\ - Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST # Connect to children signals save.pressed.connect(_on_save_pressed) load.pressed.connect(_on_load_pressed) history.pressed.connect(_on_history_pressed) quit.pressed.connect(_on_quit_pressed) - continue_mode.item_selected.connect(_on_continue_mode_selected) text_speed.value_changed.connect(_on_text_speed_changed) @@ -51,10 +46,6 @@ func _on_quit_pressed() -> void: PopochiuUtils.g.popup_requested.emit("QuitPopup") -func _on_continue_mode_selected(idx: int) -> void: - PopochiuUtils.e.settings.auto_continue_text = idx == 0 - - func _on_text_speed_changed(value: float) -> void: PopochiuUtils.e.text_speed = 0.1 - value text_speed_label.text = "%.2fx" % PopochiuUtils.e.text_speed diff --git a/addons/popochiu/engine/objects/gui/templates/simple_click/components/simple_click_settings_popup/simple_click_settings_popup.tscn b/addons/popochiu/engine/objects/gui/templates/simple_click/components/simple_click_settings_popup/simple_click_settings_popup.tscn index 5265c81d..4f79ffff 100644 --- a/addons/popochiu/engine/objects/gui/templates/simple_click/components/simple_click_settings_popup/simple_click_settings_popup.tscn +++ b/addons/popochiu/engine/objects/gui/templates/simple_click/components/simple_click_settings_popup/simple_click_settings_popup.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=19 format=3 uid="uid://bmpxoiebdf67g"] +[gd_scene load_steps=20 format=3 uid="uid://bmpxoiebdf67g"] [ext_resource type="PackedScene" uid="uid://c51xplyeuk787" path="res://addons/popochiu/engine/objects/gui/components/popups/popochiu_popup.tscn" id="1_l0ff4"] [ext_resource type="Script" path="res://addons/popochiu/engine/objects/gui/templates/simple_click/components/simple_click_settings_popup/simple_click_settings_popup.gd" id="2_y4ddu"] [ext_resource type="Texture2D" uid="uid://0b0qq0lccphh" path="res://addons/popochiu/engine/objects/gui/templates/simple_click/components/simple_click_settings_popup/images/simple_click_settings_popup_icons.png" id="3_fhu7w"] [ext_resource type="PackedScene" uid="uid://drx0r8w00ivck" path="res://addons/popochiu/engine/objects/gui/components/sound_volumes/sound_volumes.tscn" id="3_w0ss4"] +[ext_resource type="PackedScene" uid="uid://clhnbnew4ydpc" path="res://addons/popochiu/engine/objects/gui/components/dialogue_advancement/dialogue_advancement.tscn" id="5_chydt"] [sub_resource type="AtlasTexture" id="AtlasTexture_n1wdd"] atlas = ExtResource("3_fhu7w") @@ -132,7 +133,7 @@ layout_mode = 2 [node name="Label" type="Label" parent="Overlay/PanelContainer/VBoxContainer/BodyContainer/RightContainer/ContinueContainer" index="0"] layout_mode = 2 -text = "Continue Mode" +text = "Dialogue Advancement" [node name="HBoxContainer" type="HBoxContainer" parent="Overlay/PanelContainer/VBoxContainer/BodyContainer/RightContainer/ContinueContainer" index="1"] layout_mode = 2 @@ -141,14 +142,9 @@ layout_mode = 2 layout_mode = 2 texture = SubResource("AtlasTexture_gnvye") -[node name="ContinueMode" type="OptionButton" parent="Overlay/PanelContainer/VBoxContainer/BodyContainer/RightContainer/ContinueContainer/HBoxContainer" index="1"] -unique_name_in_owner = true +[node name="DialogueAdvancement" parent="Overlay/PanelContainer/VBoxContainer/BodyContainer/RightContainer/ContinueContainer/HBoxContainer" index="1" instance=ExtResource("5_chydt")] layout_mode = 2 size_flags_horizontal = 3 -item_count = 2 -popup/item_0/text = "Auto" -popup/item_1/text = "Manual" -popup/item_1/id = 1 [node name="DialogueSpeedContainer" type="VBoxContainer" parent="Overlay/PanelContainer/VBoxContainer/BodyContainer/RightContainer" index="2"] layout_mode = 2