gamo-gd/config.gd

63 lines
2.1 KiB
GDScript
Raw Normal View History

2026-01-24 17:06:05 +02:00
extends Node
const PATH := "user://config.cfg"
const SETTINGS_SECTION := "settings"
const JOYSTICK_SECTION := "joystick"
const BUTTONS_SECTION := "buttons"
2026-01-24 17:06:05 +02:00
const DEVICE_LABEL := "device_label"
const BACKGROUND_COLOR := "background_color"
2026-01-24 17:06:05 +02:00
const JOYSTICK_LABELS := "joystick_labels"
const TRACK_JOYSTICK_MOVEMENT := "track_joystick_movement"
const TRACK_JOYSTICK_DRIFT := "track_joystick_drift"
const BUTTONS_LABELS := "buttons_labels"
const DEFAULT_COLOR := "default_color"
const ACTIVE_COLOR := "active_color"
const TEXT_COLOR := "text_color"
2026-01-24 17:06:05 +02:00
var _config: ConfigFile
# Settings
static var device_label := ConfigOption.new(SETTINGS_SECTION, DEVICE_LABEL, true)
static var background_color := ConfigOption.new(SETTINGS_SECTION, BACKGROUND_COLOR, Color(0x4d4d4dff))
static var default_color := ConfigOption.new(SETTINGS_SECTION, DEFAULT_COLOR, Color(0x2a2a2aff))
static var active_color := ConfigOption.new(SETTINGS_SECTION, ACTIVE_COLOR, Color(0x4a8e53ff))
static var text_color := ConfigOption.new(SETTINGS_SECTION, TEXT_COLOR, Color(0xffffffff))
2026-01-24 17:06:05 +02:00
# Joystick
static var joystick_labels := ConfigOption.new(JOYSTICK_SECTION, JOYSTICK_LABELS, true)
static var track_joystick_movement := ConfigOption.new(JOYSTICK_SECTION, TRACK_JOYSTICK_MOVEMENT, true)
static var track_joystick_drift := ConfigOption.new(JOYSTICK_SECTION, TRACK_JOYSTICK_DRIFT, true)
# Buttons
static var buttons_labels := ConfigOption.new(BUTTONS_SECTION, BUTTONS_LABELS, true)
2026-01-24 17:06:05 +02:00
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")
for opt in WyHelper.options:
opt.load(self._config)
var bg_color: Color = self.background_color.value
RenderingServer.set_default_clear_color(bg_color)
if bg_color.a > 0.0:
get_viewport().transparent_bg = false
func _notification(what: int) -> void:
if what == NOTIFICATION_WM_CLOSE_REQUEST:
self.save_config()
2026-01-24 17:06:05 +02:00
func save_config() -> void:
for opt in WyHelper.options:
opt.save(self._config)
2026-01-24 17:06:05 +02:00
var err := self._config.save(PATH)
if err != OK:
printerr("Failed to save config")
return