81 lines
2.4 KiB
Lua
81 lines
2.4 KiB
Lua
local category_list = require('categories').list
|
|
local data_utils = require('data_utils')
|
|
local setting_formats = require('defines.setting_name_formats')
|
|
|
|
local ordering_table = data_utils.create_ordering_table_for_settings()
|
|
local settings = {}
|
|
|
|
-- Startup settings
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.modpack_compatibility_enabled,
|
|
type = 'bool-setting',
|
|
setting_type = 'startup',
|
|
order = 'a-a',
|
|
default_value = true,
|
|
}
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.infinite_research_enabled,
|
|
type = 'bool-setting',
|
|
setting_type = 'startup',
|
|
order = 'a-b',
|
|
default_value = true,
|
|
}
|
|
for index, category in ipairs(category_list) do
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.research_enabled:format(category.name),
|
|
type = 'bool-setting',
|
|
setting_type = 'startup',
|
|
order = 'b-' .. ordering_table[index],
|
|
default_value = true,
|
|
}
|
|
end
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.custom_config,
|
|
type = 'string-setting',
|
|
setting_type = 'startup',
|
|
order = 'c-a',
|
|
default_value = '',
|
|
allow_blank = true,
|
|
}
|
|
|
|
-- Runtime settings
|
|
for index, category in ipairs(category_list) do
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.flat_bonus:format(category.name),
|
|
type = category.type .. '-setting',
|
|
setting_type = 'runtime-global',
|
|
order = ordering_table[index * 3 - 2] .. '-a',
|
|
default_value = 0,
|
|
minimum_value = 0,
|
|
maximum_value = 99999,
|
|
}
|
|
end
|
|
for index, category in ipairs(category_list) do
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.multiplier:format(category.name),
|
|
type = 'double-setting',
|
|
setting_type = 'runtime-global',
|
|
order = ordering_table[index * 3 - 1] .. '-b',
|
|
default_value = 1,
|
|
minimum_value = 0,
|
|
maximum_value = 999,
|
|
}
|
|
end
|
|
for index, category in ipairs(category_list) do
|
|
local effect_index = 1
|
|
for _, effect_toggle in pairs(category.effect_settings or {}) do
|
|
settings[#settings + 1] = {
|
|
name = setting_formats.effect_flag:format(category.name, effect_toggle),
|
|
type = 'bool-setting',
|
|
setting_type = 'runtime-global',
|
|
order = ('%s-c-%s'):format(ordering_table[index * 3], ordering_table[effect_index]),
|
|
default_value = true,
|
|
}
|
|
effect_index = effect_index + 1
|
|
end
|
|
end
|
|
|
|
if #settings > 0 then
|
|
data:extend(settings)
|
|
end
|