67 lines
2.4 KiB
GDScript
67 lines
2.4 KiB
GDScript
extends Node
|
|
|
|
const PATH := "user://config.cfg"
|
|
const SETTINGS_SECTION := "settings"
|
|
const JOYSTICK_SECTION := "joystick"
|
|
const BUTTONS_SECTION := "buttons"
|
|
|
|
const DEVICE_LABEL := "device_label"
|
|
const BACKGROUND_COLOR := "background_color"
|
|
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_JOYSTICK_COLOR := "default_joystick_color"
|
|
const DEFAULT_BUTTON_COLOR := "default_button_color"
|
|
const ACTIVE_COLOR := "active_color"
|
|
const TEXT_COLOR := "text_color"
|
|
const COLOR_BUTTON_TEXT := "color_button_text"
|
|
|
|
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 active_color := ConfigOption.new(SETTINGS_SECTION, ACTIVE_COLOR, Color(0x4a8e53ff))
|
|
static var text_color := ConfigOption.new(SETTINGS_SECTION, TEXT_COLOR, Color(0xffffffff))
|
|
|
|
# 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)
|
|
static var default_joystick_color := ConfigOption.new(JOYSTICK_SECTION, DEFAULT_JOYSTICK_COLOR, Color(0x2a2a2aff))
|
|
|
|
# Buttons
|
|
static var buttons_labels := ConfigOption.new(BUTTONS_SECTION, BUTTONS_LABELS, true)
|
|
static var default_button_color := ConfigOption.new(BUTTONS_SECTION, DEFAULT_BUTTON_COLOR, Color(0x2a2a2aff))
|
|
static var color_button_text := ConfigOption.new(BUTTONS_SECTION, COLOR_BUTTON_TEXT, false)
|
|
|
|
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()
|
|
|
|
func save_config() -> void:
|
|
for opt in WyHelper.options:
|
|
opt.save(self._config)
|
|
|
|
var err := self._config.save(PATH)
|
|
if err != OK:
|
|
printerr("Failed to save config")
|
|
return
|