39 lines
1.0 KiB
GDScript
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
|