diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/global.gd | 11 | ||||
-rw-r--r-- | client/menu/settings.gd | 16 | ||||
-rw-r--r-- | client/menu/settings/preset.gd | 39 |
3 files changed, 64 insertions, 2 deletions
diff --git a/client/global.gd b/client/global.gd index 59ba5930..c7c9d906 100644 --- a/client/global.gd +++ b/client/global.gd @@ -73,6 +73,17 @@ var default_settings := { var profile: Dictionary var settings: Dictionary +var presets: Array[Preset] = [ + Preset.new(tr("Graphics"), { + tr("Low"): { + "sdfgi": false + }, + tr("High"): { + "sdfgi": true + } + }) +] + var server_url = "" var error_message = "" diff --git a/client/menu/settings.gd b/client/menu/settings.gd index 800e3c66..27e08db7 100644 --- a/client/menu/settings.gd +++ b/client/menu/settings.gd @@ -33,11 +33,23 @@ func exit(): func update_rows(fix_focus = false): for c in options.get_children(): c.queue_free() - + + for i in Global.presets: + var label := Label.new() + label.text = i.label + var hbox := HBoxContainer.new() + var spacer := Control.new() + spacer.size_flags_horizontal = Control.SIZE_EXPAND + hbox.add_child(label) + hbox.add_child(spacer) + options.add_child(hbox) + for b in i.buttons(): + hbox.add_child(b) + for k in Global.settings.keys(): var row: SettingsRow = Global.settings[k].get_row() options.add_child(row) - + if fix_focus: pass # TODO: Not implemented! diff --git a/client/menu/settings/preset.gd b/client/menu/settings/preset.gd new file mode 100644 index 00000000..bb13b570 --- /dev/null +++ b/client/menu/settings/preset.gd @@ -0,0 +1,39 @@ +# Hurry Curry! - a game about cooking +# Copyright 2024 nokoe +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +class_name Preset +extends Object + +var label: String +var options: Dictionary + +func _init(name_: String, options_: Dictionary): + label = name_ + options = options_ + +func apply(preset_name: String): + var preset: Dictionary = options[preset_name] + for i in preset.keys(): + var setting_name: String = i + Global.set_setting(setting_name, preset[setting_name]) + +func buttons() -> Array[Button]: + var arr: Array[Button] = [] + for i in options.keys(): + var button := Button.new() + button.pressed.connect(apply.bind(i)) + button.text = i + arr.push_back(button) + return arr |