Add class Settings

This commit is contained in:
Simon Brodtmann 2025-11-12 00:32:17 +01:00
parent 6ca6034186
commit c2392a687c

View file

@ -0,0 +1,38 @@
--- 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 }
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