diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/menu/settings/preset_row.gd | 25 | ||||
-rw-r--r-- | client/menu/settings/range_setting.gd | 7 | ||||
-rw-r--r-- | client/menu/settings/settings_category.gd | 15 | ||||
-rw-r--r-- | client/menu/warning_popup.gd | 1 |
4 files changed, 22 insertions, 26 deletions
diff --git a/client/menu/settings/preset_row.gd b/client/menu/settings/preset_row.gd index 808f6381..7eca0c3c 100644 --- a/client/menu/settings/preset_row.gd +++ b/client/menu/settings/preset_row.gd @@ -14,7 +14,7 @@ # 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 +class_name PresetRow extends GameSetting var options: Dictionary @@ -24,15 +24,22 @@ func _init(id: String, options_: Dictionary): super(id) options = options_ +var prefix = "" +func set_parent(parent): + super(parent) + if parent != null: prefix = parent.key + func apply(preset_name: String): - var preset: Dictionary = options[preset_name] + var preset = options[preset_name] for i in preset.keys(): - var setting_name: String = i - Global.set_setting(setting_name, preset[setting_name]) + Global.set_setting(prefix + "." + i, preset[i]) func _update_row(): - for i in options.keys(): - var button := Button.new() - button.pressed.connect(apply.bind(i)) - button.text = i - arr.push_back(button) + super() + if row.value_node == null: + row.value_node = HBoxContainer.new() + for i in options.keys(): + var button := Button.new() + button.pressed.connect(apply.bind(i)) + button.text = tr(nskey + "." + i) + row.value_node.add_child(button) diff --git a/client/menu/settings/range_setting.gd b/client/menu/settings/range_setting.gd index d8616d54..49db7c21 100644 --- a/client/menu/settings/range_setting.gd +++ b/client/menu/settings/range_setting.gd @@ -37,7 +37,8 @@ func _update_row(): row.value_node.tick_count = abs(max_value - min_value) if tick_count == null else tick_count row.value_node.step = 0 if smooth else (1 if tick_count == null else abs(max_value - min_value) / (tick_count - 1)) row.value_node.value = Global.get_setting(key) - if not row.value_node.value_changed.is_connected(from_ui): row.value_node.value_changed.connect(from_ui) + if not row.value_node.value_changed.is_connected(from_ui): + row.value_node.value_changed.connect(from_ui) -func from_ui(): - Global.set_setting(key, row.value_node.value) +func from_ui(value): + Global.set_setting(key, value) diff --git a/client/menu/settings/settings_category.gd b/client/menu/settings/settings_category.gd index 7425ea19..a80c12c9 100644 --- a/client/menu/settings/settings_category.gd +++ b/client/menu/settings/settings_category.gd @@ -17,14 +17,12 @@ class_name SettingsCategory extends GameSetting var settings: Array # Dictionary[String, GameSetting] -var presets # Array[Preset] var options: VBoxContainer -func _init(new_id: String, new_settings: Array, new_presets = []): +func _init(new_id: String, new_settings: Array): super(new_id) settings = new_settings - presets = new_presets func set_parent(parent: GameSetting): super(parent) @@ -41,19 +39,10 @@ func _update_row(): if options.get_parent() != row: row.add_child(options) - if presets != null: - for i in presets: - var prow: SettingsRow = preload("res://menu/settings/settings_row.tscn").instantiate() - options.add_child(prow) - prow.label.text = i.label - prow.reset_button.visible = false - for b in i.buttons(): - prow.value_parent.add_child(b) - for r in settings: r._update_row() + print(r.row) if r.row.get_parent() != options: - print(r.row) options.add_child(r.row) func check(): diff --git a/client/menu/warning_popup.gd b/client/menu/warning_popup.gd index 20741834..fd23a30a 100644 --- a/client/menu/warning_popup.gd +++ b/client/menu/warning_popup.gd @@ -2,7 +2,6 @@ extends Menu class_name WarningPopup func _ready(): - print(self.data) $CenterContainer/Panel/MarginContainer/VBoxContainer/Message.text = self.data func _on_accept_pressed(): |