gamo-gd/config.gd

46 lines
1.3 KiB
GDScript

extends Node
const PATH := "user://config.cfg"
const SECTION := "settings"
const JOYSTICK_LABELS := "joystick_labels"
const TRACK_JOYSTICK_MOVEMENT := "track_joystick_movement"
const TRACK_JOYSTICK_DRIFT := "track_joystick_drift"
var _config: ConfigFile
# Joystick
var joystick_labels: bool = true:
set(val):
joystick_labels = val
save_config()
var track_joystick_movement: bool = true:
set(val):
track_joystick_movement = val
save_config()
var track_joystick_drift: bool = true:
set(val):
track_joystick_drift = val
save_config()
func _ready() -> void:
self._config = ConfigFile.new()
var err := self._config.load(PATH)
if err != OK:
self.save_config()
print_debug("Auto generated config file")
self.joystick_labels = self._config.get_value(SECTION, JOYSTICK_LABELS, true)
self.track_joystick_movement = self._config.get_value(SECTION, TRACK_JOYSTICK_MOVEMENT, true)
self.track_joystick_drift = self._config.get_value(SECTION, TRACK_JOYSTICK_DRIFT, true)
func save_config() -> void:
self._config.set_value(SECTION, JOYSTICK_LABELS, self.joystick_labels)
self._config.set_value(SECTION, TRACK_JOYSTICK_MOVEMENT, self.track_joystick_movement)
self._config.set_value(SECTION, TRACK_JOYSTICK_DRIFT, self.track_joystick_drift)
var err := self._config.save(PATH)
if err != OK:
printerr("Failed to save config")
return