cf-lib/cf-lib/settings/Settings.lua
2025-12-12 18:52:56 +01:00

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