diff options
| author | metamuffin <metamuffin@noreply.codeberg.org> | 2024-09-07 13:37:23 +0000 | 
|---|---|---|
| committer | metamuffin <metamuffin@noreply.codeberg.org> | 2024-09-07 13:37:23 +0000 | 
| commit | 091f8ff9acf04cedf14765e9db5540c876fd7375 (patch) | |
| tree | 4c115d6cb14df5d68bc72785f1020ed4ad2fb8e2 /client/menu/settings/game_setting.gd | |
| parent | af108805c8fd87a9d20a8df02072f224d2cd3417 (diff) | |
| parent | 3ef379fb07df126ea09cb112801a0bef371f8811 (diff) | |
| download | hurrycurry-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.gd | 50 | 
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) | 
