diff options
-rw-r--r-- | client/menu/settings_row.gd | 22 | ||||
-rw-r--r-- | client/menu/settings_row.tscn | 19 |
2 files changed, 37 insertions, 4 deletions
diff --git a/client/menu/settings_row.gd b/client/menu/settings_row.gd index 30b1fd67..d57bbee0 100644 --- a/client/menu/settings_row.gd +++ b/client/menu/settings_row.gd @@ -6,14 +6,16 @@ signal apply_preset @onready var value_parent = $HBoxContainer/BoxContainer @onready var label = $HBoxContainer/Label +var setting +var default var value_node var description = tr("no value was given to the row") func setup(key: String, dict: Dictionary, defaults: Dictionary): - var setting = dict[key] + setting = dict[key] description = setting["description"] var value = setting["value"] - var default = defaults[key]["value"] + default = defaults[key]["value"] match setting["type"]: "toggle": value_node = CheckButton.new() @@ -71,3 +73,19 @@ func get_value(): return null else: return null + +func _on_reset_pressed(): + match setting["type"]: + "toggle": + value_node.button_pressed = default + "line": + value_node.text = default + "dropdown": + value_node.select(default) + "dropdown_preset": + value_node.select(default) + value_node.emit_signal("item_selected", value_node.selected) + "range": + value_node.value = default + _: + push_error("Could not reset setting: Unknown setting type \"%s\"" % setting["type"]) diff --git a/client/menu/settings_row.tscn b/client/menu/settings_row.tscn index b083d291..d08963d6 100644 --- a/client/menu/settings_row.tscn +++ b/client/menu/settings_row.tscn @@ -1,11 +1,20 @@ -[gd_scene load_steps=2 format=3 uid="uid://o5e5vpem8w0k"] +[gd_scene load_steps=6 format=3 uid="uid://o5e5vpem8w0k"] +[ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme.tres" id="1_fk0r2"] [ext_resource type="Script" path="res://menu/settings_row.gd" id="1_lxjnc"] +[ext_resource type="FontFile" uid="uid://5ixo6b3bd3km" path="res://menu/theme/font-josefin-sans.woff2" id="3_qh45r"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pk3rs"] +content_margin_left = 16.0 + +[sub_resource type="FontVariation" id="FontVariation_o6i7s"] +base_font = ExtResource("3_qh45r") [node name="SettingsRow" type="PanelContainer"] offset_right = 105.0 offset_bottom = 23.0 size_flags_horizontal = 3 +theme = ExtResource("1_fk0r2") script = ExtResource("1_lxjnc") [node name="HBoxContainer" type="HBoxContainer" parent="."] @@ -14,11 +23,17 @@ layout_mode = 2 [node name="Label" type="Label" parent="HBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 +theme_override_styles/normal = SubResource("StyleBoxEmpty_pk3rs") [node name="BoxContainer" type="BoxContainer" parent="HBoxContainer"] custom_minimum_size = Vector2(300, 50) layout_mode = 2 alignment = 2 -[node name="Button" type="Button" parent="HBoxContainer"] +[node name="Reset" type="Button" parent="HBoxContainer"] layout_mode = 2 +theme_override_fonts/font = SubResource("FontVariation_o6i7s") +theme_override_font_sizes/font_size = 24 +text = "↺" + +[connection signal="pressed" from="HBoxContainer/Reset" to="." method="_on_reset_pressed"] |