Files
research-multipliers/settings.lua

66 lines
1.8 KiB
Lua

local is_space_age_available = mods['space-age'] ~= nil
local base_settings = {
"global-multiplier",
"essential-research-multiplier",
"infinite-research-multiplier",
};
local pack_settings = {
"automation-science-multiplier",
"logistic-science-multiplier",
"military-science-multiplier",
"chemical-science-multiplier",
"production-science-multiplier",
"utility-science-multiplier",
"space-science-multiplier",
};
if is_space_age_available then
table.insert(base_settings, "interplanetary-research-multiplier");
table.insert(base_settings, "planet-discovery-research-multiplier");
table.insert(pack_settings, "metallurgic-science-multiplier");
table.insert(pack_settings, "electromagnetic-science-multiplier");
table.insert(pack_settings, "agricultural-science-multiplier");
table.insert(pack_settings, "cryogenic-science-multiplier");
table.insert(pack_settings, "promethium-science-multiplier");
end
local settings = {}
-- helper function for acquiring a stable ordering string, fuck my life
function get_order(value)
local result = "";
if value >= 26 then
for _=1, (value/26) do
result = result .. string.char(97 + 26 - 1);
end
value = value % 26;
end
result = result .. string.char(97 + value - 1);
return result
end
-- helper for adjusting all options for settings
function add_setting(name, order)
table.insert(settings, {
type = "double-setting",
name = name,
setting_type = "startup",
order = order,
minimum_value = 0.000000000001,
default_value = 1.0,
})
end
for index, setting_name in pairs(base_settings) do
add_setting(setting_name, get_order(index));
end
for index, setting_name in pairs(pack_settings) do
add_setting(setting_name, get_order(index + #base_settings));
end
data:extend(settings)