# Hurry Curry! - a game about cooking # Copyright 2024 tpart # Copyright 2024 metamuffin # # 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 . # extends Menu const SETTINGS_ROW_SCENE = preload("res://menu/settings/settings_row.tscn") @onready var settings_tabs: TabContainer = $OuterGap/Panel/InnerGap/VBoxContainer/TabContainer func _ready(): super() update_rows() func _on_back_pressed(): exit() func exit(): Global.save_settings() Global.apply_settings() super() func update_rows(fix_focus = false): for c in settings_tabs.get_children(): c.queue_free() for category: SettingsCategory in Global.default_settings: var category_settings = category.settings var scroll := ScrollContainerCustom.new() var options := VBoxContainer.new() scroll.name = category.name scroll.size_flags_horizontal = Control.SIZE_EXPAND_FILL settings_tabs.add_child(scroll) options.size_flags_horizontal = Control.SIZE_EXPAND_FILL scroll.add_child(options) var category_presets = category.presets if category_presets != null: for i: Preset in category_presets: var row: SettingsRow = SETTINGS_ROW_SCENE.instantiate() options.add_child(row) row.label.text = i.label row.reset_button.visible = false for b in i.buttons(): row.value_parent.add_child(b) for k: String in category_settings.keys(): var row: SettingsRow = Global.settings[k].get_row() options.add_child(row) if fix_focus: pass # TODO: Not implemented! # await get_tree().process_frame # Global.focus_first(self)