open-fpsz/systems/settings.gd
2024-04-19 06:19:21 +00:00

37 lines
1.2 KiB
GDScript

class_name Settings extends Node
var _config_file : ConfigFile = ConfigFile.new()
var fov : int
var mouse_sensitivity : float
var inverted_y_axis : bool
var fullscreen : bool
const SETTINGS_FILE_PATH : String = "user://settings.cfg"
func _ready() -> void:
var error : Error = _config_file.load(SETTINGS_FILE_PATH)
if error != OK:
print("Settings not found, using defaults")
return
fov = _config_file.get_value("gameplay", "fov", 90)
mouse_sensitivity = _config_file.get_value("gameplay", "mouse_sensitivity", 0.6)
inverted_y_axis = _config_file.get_value("gameplay", "inverted_y_axis", false)
fullscreen = _config_file.get_value("graphics", "fullscreen", false)
_update_screen()
func save_to_file() -> void:
_config_file.set_value("gameplay", "fov", fov)
_config_file.set_value("gameplay", "mouse_sensitivity", mouse_sensitivity)
_config_file.set_value("gameplay", "inverted_y_axis", inverted_y_axis)
_config_file.set_value("graphics", "fullscreen", fullscreen)
_update_screen()
_config_file.save(SETTINGS_FILE_PATH)
func _update_screen() -> void:
if fullscreen:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
else:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)