settings_menu.gd 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. extends PanelContainer
  2. const GENERAL = "GENERAL"
  3. const SHOW_TUTORIAL = "SHOW_TUTORIAL"
  4. var original_state = {}
  5. @onready var show_tutorial = $MarginContainer/VBoxContainer/Tabs/General/GridContainer/TutorialCheckBox
  6. @onready var discard_button = $MarginContainer/VBoxContainer/Buttons/Discard
  7. func _ready():
  8. discard_button.text = "BACK"
  9. original_state[SHOW_TUTORIAL] = Config.content.get_value("GENERAL", SHOW_TUTORIAL)
  10. show_tutorial.button_pressed = original_state[SHOW_TUTORIAL]
  11. func _process(_delta):
  12. if Input.is_action_just_pressed("ui_cancel"):
  13. self._on_discard_pressed()
  14. func _on_discard_pressed():
  15. get_tree().change_scene_to_file("res://screens/main_menu.tscn")
  16. func _on_save_pressed():
  17. Config.content.set_value(GENERAL, SHOW_TUTORIAL, show_tutorial.button_pressed)
  18. Config.save_changes()
  19. get_tree().change_scene_to_file("res://screens/main_menu.tscn")
  20. func update_discard_button():
  21. var dirty = \
  22. original_state[SHOW_TUTORIAL] != show_tutorial.button_pressed
  23. discard_button.text = "DISCARD" if dirty else "BACK"