| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- extends Node
- var config = ConfigFile.new()
- const SETTINGS_FILE_PATH = "user://settings.ini"
- func _ready():
- var file_exists = FileAccess.file_exists(SETTINGS_FILE_PATH)
- if file_exists:
- config.load(SETTINGS_FILE_PATH)
- # Set defaults only if not present
- ensure_setting("cdpprogs", "location", "no_location")
- ensure_setting("interface_settings", "disable_pvoc_warning", false)
- ensure_setting("interface_settings", "auto_close_console", false)
- ensure_setting("interface_settings", "console_on_top", true)
- ensure_setting("interface_settings", "theme", 0)
- ensure_setting("interface_settings", "theme_custom_colour", "#865699")
- ensure_setting("audio_settings", "device", "Default")
- # Only save if we added anything new
- if !file_exists or config_changed:
- config.save(SETTINGS_FILE_PATH)
- # Internal tracker
- var config_changed := false
- func ensure_setting(section: String, key: String, default_value):
- if !config.has_section_key(section, key):
- config.set_value(section, key, default_value)
- config_changed = true
-
- func save_cdpprogs_settings(location: String):
- config.set_value("cdpprogs", "location", location)
- config.save(SETTINGS_FILE_PATH)
-
- func load_cdpprogs_settings():
- var cdpprogs_settings = {}
- for key in config.get_section_keys("cdpprogs"):
- cdpprogs_settings[key] = config.get_value("cdpprogs", key)
- return cdpprogs_settings
- func save_interface_settings(key: String, value):
- config.set_value("interface_settings", key, value)
- config.save(SETTINGS_FILE_PATH)
- func load_interface_settings():
- var interface_settings = {}
- for key in config.get_section_keys("interface_settings"):
- interface_settings[key] = config.get_value("interface_settings", key)
- return interface_settings
-
- func save_audio_settings(key: String, device: String):
- config.set_value("audio_settings", key, device)
- config.save(SETTINGS_FILE_PATH)
- func load_audio_settings():
- var audio_settings = {}
- for key in config.get_section_keys("audio_settings"):
- audio_settings[key] = config.get_value("audio_settings", key)
- return audio_settings
|