39 lines
No EOL
1.1 KiB
Lua
39 lines
No EOL
1.1 KiB
Lua
--- Utility class for manipulating settings
|
|
--- @class Settings
|
|
local Settings = {}
|
|
|
|
local settingTypes = { "bool-setting", "int-setting", "double-setting", "string-setting", "color-setting" }
|
|
|
|
local function getSetting(name)
|
|
for _, settingType in pairs(settingTypes) do
|
|
local setting = data.raw[settingType][name]
|
|
if setting then return setting end
|
|
end
|
|
error("getSetting: Setting with name '" .. name .. "' not found.")
|
|
end
|
|
|
|
Settings.getSetting = getSetting
|
|
|
|
function Settings.force(name, value)
|
|
local setting = getSetting(name)
|
|
setting.hidden = true
|
|
if setting.type == "bool-setting" or setting.type == "color-setting" then
|
|
setting.forced_value = value
|
|
else
|
|
setting.allowed_values = { value }
|
|
setting.default_value = value
|
|
end
|
|
end
|
|
|
|
function Settings.default(name, value)
|
|
local setting = getSetting(name)
|
|
setting.default_value = value
|
|
end
|
|
|
|
function Settings.forceDefault(name)
|
|
local setting = getSetting(name)
|
|
local value = setting.default_value
|
|
Settings.force(name, value)
|
|
end
|
|
|
|
return Settings |