diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-09-07 03:31:25 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-09-07 03:31:25 +0200 | 
| commit | 239619be774855b372eea82213b4d8da2d906f52 (patch) | |
| tree | f2e3748a4a4e818361365796db21bdf9e70fee97 /client | |
| parent | 03bdf875aec224ee8f74c259ed776da52bad54ff (diff) | |
| download | hurrycurry-239619be774855b372eea82213b4d8da2d906f52.tar hurrycurry-239619be774855b372eea82213b4d8da2d906f52.tar.bz2 hurrycurry-239619be774855b372eea82213b4d8da2d906f52.tar.zst | |
hook changed for rows
Diffstat (limited to 'client')
| -rw-r--r-- | client/global.gd | 2 | ||||
| -rw-r--r-- | client/menu/settings.gd | 6 | ||||
| -rw-r--r-- | client/menu/settings/dropdown_setting.gd | 16 | ||||
| -rw-r--r-- | client/menu/settings/game_setting.gd | 12 | ||||
| -rw-r--r-- | client/menu/settings/preset_row.gd | 2 | ||||
| -rw-r--r-- | client/menu/settings/range_setting.gd | 8 | ||||
| -rw-r--r-- | client/menu/settings/settings_category.gd | 13 | ||||
| -rw-r--r-- | client/menu/settings/settings_root.gd | 8 | ||||
| -rw-r--r-- | client/menu/settings/text_setting.gd | 11 | ||||
| -rw-r--r-- | client/menu/settings/toggle_setting.gd | 13 | 
10 files changed, 35 insertions, 56 deletions
| diff --git a/client/global.gd b/client/global.gd index e5ae0ed6..e85bf697 100644 --- a/client/global.gd +++ b/client/global.gd @@ -153,7 +153,7 @@ func set_setting(key: String, value):  		push_error("Tried to set setting \"%s\", which does not yet exist (missing key)" % key)  		return  	else: set_setting_unchecked(key, value) -	 +  func get_profile(key: String):  	if profile.has(key):  		return profile[key] diff --git a/client/menu/settings.gd b/client/menu/settings.gd index b47331c6..f035f712 100644 --- a/client/menu/settings.gd +++ b/client/menu/settings.gd @@ -20,9 +20,9 @@ extends Menu  func _ready():  	super() -	Global.settings_tree._update_row() -	container.add_child(Global.settings_tree.row) -	container.move_child(Global.settings_tree.row, 1) +	var row = Global.settings_tree.create_row() +	container.add_child(row) +	container.move_child(row, 1)  func _on_back_pressed():  	exit() diff --git a/client/menu/settings/dropdown_setting.gd b/client/menu/settings/dropdown_setting.gd index 62162320..8dffce5a 100644 --- a/client/menu/settings/dropdown_setting.gd +++ b/client/menu/settings/dropdown_setting.gd @@ -22,14 +22,10 @@ func _init(new_id: String, new_default, new_options: Array):  	super(new_id, new_default)  	options = new_options -func _update_row(): -	super() +func create_row(): +	var row = super()  	row.value_node = OptionButton.new() -	for i in options: -		row.value_node.add_item(tr(nskey + "." + i)) -	row.value_node.select(options.find(Global.get_setting(key))) -	if not row.value_node.item_selected.is_connected(from_ui): -		row.value_node.item_selected.connect(from_ui) - -func from_ui(index): -	Global.set_setting(key, options[index]) +	for i in options: row.value_node.add_item(tr(nskey + "." + i)) +	Settings.hook_changed_init(func (value): row.value_node.select(options.find(Global.get_setting(value)))) +	row.value_node.item_selected.connect(func(item): Global.set_setting(key, options[item])) +	return row diff --git a/client/menu/settings/game_setting.gd b/client/menu/settings/game_setting.gd index 2846cbe3..a98d5abb 100644 --- a/client/menu/settings/game_setting.gd +++ b/client/menu/settings/game_setting.gd @@ -20,8 +20,6 @@ var default  var key: String  var nskey: String -var row: Node -  func _init(new_id: String, new_default = null):  	default = new_default  	key = new_id @@ -30,13 +28,11 @@ func set_parent(parent: GameSetting):  	if parent != null: key = parent.key + "." + key  	nskey = "c.settings." + key -func _update_row(): -	if row == null: row = preload("res://menu/settings/settings_row.tscn").instantiate() +func create_row(): +	var row = preload("res://menu/settings/settings_row.tscn").instantiate()  	row.description = tr(nskey) -	if not row.reset.is_connected(reset): row.reset.connect(reset) - -func reset(): -	Global.set_setting(key, default) +	row.reset.connect(func(): Global.set_setting(key, default)) +	return row  func check():  	if default != null: diff --git a/client/menu/settings/preset_row.gd b/client/menu/settings/preset_row.gd index 7eca0c3c..ab49f0d8 100644 --- a/client/menu/settings/preset_row.gd +++ b/client/menu/settings/preset_row.gd @@ -34,7 +34,7 @@ func apply(preset_name: String):  	for i in preset.keys():  		Global.set_setting(prefix + "." + i, preset[i]) -func _update_row(): +func create_row():  	super()  	if row.value_node == null:  		row.value_node = HBoxContainer.new() diff --git a/client/menu/settings/range_setting.gd b/client/menu/settings/range_setting.gd index 49db7c21..adc8a28c 100644 --- a/client/menu/settings/range_setting.gd +++ b/client/menu/settings/range_setting.gd @@ -36,9 +36,5 @@ func _update_row():  	row.value_node.max_value = max_value  	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) - -func from_ui(value): -	Global.set_setting(key, value) +	Settings.hook_change_init(func(value): row.value_node.value = value) +	row.value_node.value_changed.connect(func(value): Global.set_setting(key, value)) diff --git a/client/menu/settings/settings_category.gd b/client/menu/settings/settings_category.gd index a80c12c9..4f5fbbc4 100644 --- a/client/menu/settings/settings_category.gd +++ b/client/menu/settings/settings_category.gd @@ -30,20 +30,17 @@ func set_parent(parent: GameSetting):  		c.set_parent(self)  func _update_row(): -	if row == null: row = ScrollContainerCustom.new() -	if options == null: options = VBoxContainer.new() +	var row = ScrollContainerCustom.new() +	var options = VBoxContainer.new()  	row.name = tr(nskey)  	row.size_flags_horizontal = Control.SIZE_EXPAND_FILL  	options.size_flags_horizontal = Control.SIZE_EXPAND_FILL -	 -	if options.get_parent() != row: -		row.add_child(options) +	row.add_child(options)  	for r in settings:  		r._update_row() -		print(r.row) -		if r.row.get_parent() != options: -			options.add_child(r.row) +		options.add_child(r.row) +	return row  func check():  	for c in settings: diff --git a/client/menu/settings/settings_root.gd b/client/menu/settings/settings_root.gd index 5acf7f11..d7dad1f7 100644 --- a/client/menu/settings/settings_root.gd +++ b/client/menu/settings/settings_root.gd @@ -23,13 +23,13 @@ func _init(new_children: Array):  	for c in children:  		c.set_parent(null) -func _update_row(): -	if row == null: row = TabContainer.new() +func create_row(): +	var row = TabContainer.new()  	row.size_flags_vertical = Control.SIZE_EXPAND_FILL  	for r in children:  		r._update_row() -		if r.row.get_parent() != row: -			row.add_child(r.row) +		row.add_child(r.row) +	return row  func check():  	for c in children: diff --git a/client/menu/settings/text_setting.gd b/client/menu/settings/text_setting.gd index 6fa6b1ef..4cdf746f 100644 --- a/client/menu/settings/text_setting.gd +++ b/client/menu/settings/text_setting.gd @@ -24,12 +24,9 @@ func _init(new_id: String, new_default: String, new_placeholder: String = ""):  	placeholder = new_placeholder  func _update_row(): -	super() +	var row = super()  	row.value_node = LineEdit.new() -	row.value_node.text = Global.get_setting(key)  	row.value_node.placeholder_text = placeholder -	if not row.value_node.text_changed.is_connected(from_ui): -		row.value_node.text_changed.connect(from_ui) - -func from_ui(text): -	Global.set_setting(key, text) +	row.value_node.text_changed.connect(func(text): Global.set_setting(key, text)) +	Settings.hook_changed_init(key, func(text): row.value_node.text = text) +	return row diff --git a/client/menu/settings/toggle_setting.gd b/client/menu/settings/toggle_setting.gd index 45f08d9f..c8c40469 100644 --- a/client/menu/settings/toggle_setting.gd +++ b/client/menu/settings/toggle_setting.gd @@ -20,12 +20,9 @@ extends GameSetting  func _init(new_id: String, new_default: bool):  	super(new_id, new_default) -func _update_row(): -	super() +func create_row(): +	var row = super()  	row.value_node = CheckButton.new() -	row.value_node.button_pressed = Global.get_setting(key) -	if not row.value_node.pressed.is_connected(from_ui): -		row.value_node.pressed.connect(from_ui) - -func from_ui(): -	Global.set_setting(key, row.value_node.button_pressed) +	row.value_node.pressed.connect(func(): Global.set_setting(key, row.value_node.button_pressed)) +	Settings.hook_changed_init(key, func(value): row.value_node.button_pressed = value) +	return row | 
