37 lines
1.1 KiB
GDScript
37 lines
1.1 KiB
GDScript
extends HBoxContainer
|
|
|
|
class_name SettingsMenu
|
|
|
|
@onready var audio_options_container: VBoxContainer = $%AudioOptionsContainer
|
|
@onready var aliasing_checkbox: CustomCheckbox = $%AliasingCheckbox
|
|
|
|
func _ready() -> void:
|
|
_refresh_audio_options()
|
|
|
|
if aliasing_checkbox:
|
|
aliasing_checkbox.button_pressed = get_viewport().use_taa or get_viewport().msaa_3d != Viewport.MSAA_DISABLED
|
|
aliasing_checkbox.toggled.connect(_on_aliasing_toggled)
|
|
|
|
func _on_aliasing_toggled(toggled_on: bool) -> void:
|
|
get_viewport().use_taa = toggled_on
|
|
var msaa_mode = Viewport.MSAA_2X if toggled_on else Viewport.MSAA_DISABLED
|
|
get_viewport().msaa_3d = msaa_mode
|
|
get_viewport().msaa_2d = msaa_mode
|
|
|
|
func _get_audio_options() -> Array[AudioOption]:
|
|
var audio_options: Array[AudioOption] = []
|
|
|
|
for child in audio_options_container.get_children():
|
|
if child is AudioOption:
|
|
audio_options.append(child)
|
|
|
|
return audio_options
|
|
|
|
func _refresh_audio_options() -> void:
|
|
for audio_option in _get_audio_options():
|
|
audio_option.refresh()
|
|
|
|
func _apply_current_audio_values() -> void:
|
|
for audio_option in _get_audio_options():
|
|
audio_option.apply_current_value()
|