Working on settings
This commit is contained in:
parent
655d6a0d30
commit
6ec6744477
|
@ -1,4 +1,5 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
## The singleton of all singletons
|
||||||
|
|
||||||
@onready var PauseMenu := $PauseMenu/Root
|
@onready var PauseMenu := $PauseMenu/Root
|
||||||
|
|
||||||
|
@ -31,5 +32,32 @@ func player_init(player: Node):
|
||||||
player.queue_free()
|
player.queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
# Saving: settings and in-game-saves are handled differently
|
||||||
|
var settings := {
|
||||||
|
"vsync" : true,
|
||||||
|
}
|
||||||
|
|
||||||
|
## Saves settings
|
||||||
|
func apply_settings():
|
||||||
|
var json_string = JSON.stringify(settings)
|
||||||
|
var settings_file = FileAccess.open("user://settings.json", FileAccess.WRITE)
|
||||||
|
settings_file.store_string(json_string)
|
||||||
|
settings_file.close()
|
||||||
|
|
||||||
|
func load_settings():
|
||||||
|
var settings_file = FileAccess.open("user://settings.json", FileAccess.READ)
|
||||||
|
var json_string = settings_file.get_line()
|
||||||
|
var json = JSON.new()
|
||||||
|
var parse_result = json.parse(json_string)
|
||||||
|
if not parse_result == OK:
|
||||||
|
printerr("Failed to load settings")
|
||||||
|
return
|
||||||
|
settings = parse_result.data
|
||||||
|
|
||||||
func _on_exit_game_pressed():
|
func _on_exit_game_pressed():
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
|
func _on_vsync_toggled(toggled_on: bool) -> void:
|
||||||
|
settings["vsync"] = toggled_on
|
||||||
|
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if toggled_on else DisplayServer.VSYNC_DISABLED)
|
||||||
|
apply_settings()
|
||||||
|
|
|
@ -50,7 +50,7 @@ grow_vertical = 2
|
||||||
theme_override_constants/separation = 10
|
theme_override_constants/separation = 10
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="PauseMenu/Root/Panel/VBoxContainer"]
|
[node name="Title" type="Label" parent="PauseMenu/Root/Panel/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Pause"
|
text = "Pause"
|
||||||
|
|
||||||
|
@ -58,4 +58,10 @@ text = "Pause"
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Exit Game"
|
text = "Exit Game"
|
||||||
|
|
||||||
|
[node name="Vsync" type="CheckButton" parent="PauseMenu/Root/Panel/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Vsync"
|
||||||
|
|
||||||
[connection signal="pressed" from="PauseMenu/Root/Panel/VBoxContainer/ExitGame" to="." method="_on_exit_game_pressed"]
|
[connection signal="pressed" from="PauseMenu/Root/Panel/VBoxContainer/ExitGame" to="." method="_on_exit_game_pressed"]
|
||||||
|
[connection signal="pressed" from="PauseMenu/Root/Panel/VBoxContainer/Vsync" to="." method="_on_vsync_pressed"]
|
||||||
|
[connection signal="toggled" from="PauseMenu/Root/Panel/VBoxContainer/Vsync" to="." method="_on_vsync_toggled"]
|
||||||
|
|
Loading…
Reference in a new issue