aboutsummaryrefslogtreecommitdiff
path: root/client/menu/settings/game_setting.gd
diff options
context:
space:
mode:
authormetamuffin <metamuffin@noreply.codeberg.org>2024-09-07 13:37:23 +0000
committermetamuffin <metamuffin@noreply.codeberg.org>2024-09-07 13:37:23 +0000
commit091f8ff9acf04cedf14765e9db5540c876fd7375 (patch)
tree4c115d6cb14df5d68bc72785f1020ed4ad2fb8e2 /client/menu/settings/game_setting.gd
parentaf108805c8fd87a9d20a8df02072f224d2cd3417 (diff)
parent3ef379fb07df126ea09cb112801a0bef371f8811 (diff)
downloadhurrycurry-091f8ff9acf04cedf14765e9db5540c876fd7375.tar
hurrycurry-091f8ff9acf04cedf14765e9db5540c876fd7375.tar.bz2
hurrycurry-091f8ff9acf04cedf14765e9db5540c876fd7375.tar.zst
Merge pull request 'Refactor settings system and localization' (#123) from new-settings into master
Reviewed-on: https://codeberg.org/hurrycurry/hurrycurry/pulls/123
Diffstat (limited to 'client/menu/settings/game_setting.gd')
-rw-r--r--client/menu/settings/game_setting.gd50
1 files changed, 19 insertions, 31 deletions
diff --git a/client/menu/settings/game_setting.gd b/client/menu/settings/game_setting.gd
index afe1fe65..a98d5abb 100644
--- a/client/menu/settings/game_setting.gd
+++ b/client/menu/settings/game_setting.gd
@@ -16,39 +16,27 @@
class_name GameSetting
extends Object
-var preset
-var _value
-var description: String
+var default
+var key: String
+var nskey: String
-var row: SettingsRow
+func _init(new_id: String, new_default = null):
+ default = new_default
+ key = new_id
-func _init(new_description: String, new_preset):
- preset = new_preset
- set_value(new_preset)
- description = new_description
+func set_parent(parent: GameSetting):
+ if parent != null: key = parent.key + "." + key
+ nskey = "c.settings." + key
-func reset():
- set_value(preset)
-
-func get_row() -> SettingsRow:
- _update_row()
+func create_row():
+ var row = preload("res://menu/settings/settings_row.tscn").instantiate()
+ row.description = tr(nskey)
+ row.reset.connect(func(): Global.set_setting(key, default))
return row
-func _update_row():
- if row != null:
- row.queue_free()
- row = preload("res://menu/settings/settings_row.tscn").instantiate()
- row.description = description
- row.reset.connect(reset)
-
-func fetch_setting():
- pass
-
-func get_value():
- return _value
-
-func set_value(v):
- if v is Array:
- _value = v.duplicate(true)
- else:
- _value = v
+func check():
+ if default != null:
+ if not key in Global.settings:
+ Global.set_setting_unchecked(key, default)
+ if typeof(default) != typeof(Global.settings[key]):
+ Global.set_setting_unchecked(key, default)