Files
GameJamDungeon/Zennysoft.Game.Ma/addons/input_helper/settings.gd
2025-11-03 02:48:05 -08:00

43 lines
1.5 KiB
GDScript

class_name InputHelperSettings extends Node
const USE_GRANULAR_DEVICE_IDENTIFIERS = "devices/use_granular_device_identifiers"
const SETTINGS_CONFIGURATION = {
USE_GRANULAR_DEVICE_IDENTIFIERS: {
value = false,
type = TYPE_BOOL,
is_advanced = true
},
}
static func prepare() -> void:
for key: String in SETTINGS_CONFIGURATION:
var setting_config: Dictionary = SETTINGS_CONFIGURATION[key]
var setting_name: String = "input_helper/%s" % key
if not ProjectSettings.has_setting(setting_name):
ProjectSettings.set_setting(setting_name, setting_config.value)
ProjectSettings.set_initial_value(setting_name, setting_config.value)
ProjectSettings.add_property_info({
"name" = setting_name,
"type" = setting_config.type,
"hint" = setting_config.get("hint", PROPERTY_HINT_NONE),
"hint_string" = setting_config.get("hint_string", "")
})
ProjectSettings.set_as_basic(setting_name, not setting_config.has("is_advanced"))
ProjectSettings.set_as_internal(setting_name, setting_config.has("is_hidden"))
static func set_setting(key: String, value) -> void:
if get_setting(key, value) != value:
ProjectSettings.set_setting("input_helper/%s" % key, value)
ProjectSettings.set_initial_value("input_helper/%s" % key, SETTINGS_CONFIGURATION[key].value)
ProjectSettings.save()
static func get_setting(key: String, default):
if ProjectSettings.has_setting("input_helper/%s" % key):
return ProjectSettings.get_setting("input_helper/%s" % key)
else:
return default