Files
notSpore/evolve-die-repeat/addons/modular-settings-menu/scripts/base-settings-elements/toggle_element.gd
2026-03-07 14:16:44 +01:00

39 lines
1.0 KiB
GDScript

extends SettingsElement
class_name ToggleElement
## A settings element specifically for elements that have a toggle button.
## Default value for the element
@export var DEFAULT_VALUE: bool = false
## Reference to the toggle button of the element.
@export var ToggleRef: Button
func _ready() -> void:
super._ready()
ToggleRef.connect("toggled", toggled)
## Overwrite for SettingsElement.
func init_element() -> void:
ToggleRef.set_pressed(currentValue)
## Gets the valid values from the element to be used for validating data.
func get_valid_values() -> Dictionary:
return {
"defaultValue": DEFAULT_VALUE,
"validOptions": [true, false]
}
## Used to update values of the section cache the element is under.
func toggled(state: bool) -> void:
# Check if the settings menu is open
if ParentRef.settingsCache_.size() > 0:
# Update the settings cache with the new toggle state
ParentRef.settingsCache_[IDENTIFIER] = state
# Check if the new state is different than the saved state
ParentRef.settings_changed(IDENTIFIER)
currentValue = state