205 lines
5.9 KiB
Lua
205 lines
5.9 KiB
Lua
local setting_list = {}
|
||
-- Add/enable stuff
|
||
setting_list.BI_Solar_Additions = {
|
||
type = "bool-setting",
|
||
name = "BI_Solar_Additions",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "a[modifier]-a[Solar_Farm]",
|
||
}
|
||
|
||
setting_list.BI_Bio_Fuel = {
|
||
type = "bool-setting",
|
||
name = "BI_Bio_Fuel",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "a[modifier]-b[Bio_Fuel]",
|
||
}
|
||
|
||
setting_list.BI_Bio_Cannon = {
|
||
type = "bool-setting",
|
||
name = "BI_Bio_Cannon",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "a[modifier]-c[Bio_Cannon]",
|
||
}
|
||
|
||
setting_list.BI_Show_musk_floor_in_mapview = {
|
||
type = "bool-setting",
|
||
name = "BI_Show_musk_floor_in_mapview",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "a[modifier]-d[Musk_floor]",
|
||
}
|
||
|
||
setting_list.BI_Easy_Bio_Gardens = {
|
||
type = "bool-setting",
|
||
name = "BI_Easy_Bio_Gardens",
|
||
setting_type = "startup",
|
||
default_value = false,
|
||
order = "a[modifier]-e[Fluid_fertilizer]",
|
||
}
|
||
|
||
setting_list.BI_Bigger_Wooden_Chests = {
|
||
type = "bool-setting",
|
||
name = "BI_Bigger_Wooden_Chests",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "a[modifier]-b[Bigger_Wooden_Chests]",
|
||
}
|
||
|
||
-- Game tweaks
|
||
setting_list.BI_Game_Tweaks_Emissions_Multiplier = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Emissions_Multiplier",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-a[Fuel_emission_multiplier]",
|
||
per_user = true,
|
||
}
|
||
setting_list.BI_Game_Tweaks_Stack_Size = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Stack_Size",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-b[Stack_size]",
|
||
}
|
||
setting_list.BI_Game_Tweaks_Recipe = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Recipe",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-c1[Recipe]",
|
||
}
|
||
setting_list.BI_Game_Tweaks_Production_Science = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Production_Science",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-c3[Production_science]",
|
||
}
|
||
setting_list.BI_Game_Tweaks_Tree = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Tree",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-d1[Trees]",
|
||
}
|
||
setting_list.BI_Game_Tweaks_Small_Tree_Collisionbox = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Small_Tree_Collisionbox",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-d2[Tree_collision_box]",
|
||
}
|
||
setting_list.BI_Game_Tweaks_Player = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Player",
|
||
setting_type = "startup",
|
||
default_value = false,
|
||
order = "b[tweaks]-e[Player_tweaks]",
|
||
}
|
||
setting_list.BI_Game_Tweaks_Bot = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Bot",
|
||
setting_type = "startup",
|
||
default_value = false,
|
||
order = "b[tweaks]-f[Bot_tweaks]",
|
||
}
|
||
|
||
|
||
-- Compatibility with other mods (optional)
|
||
-- Industrial Revolution + AAI Industry
|
||
if not (mods["IndustrialRevolution"] or mods["aai-industry"]) then
|
||
setting_list.BI_Game_Tweaks_Disassemble = {
|
||
type = "bool-setting",
|
||
name = "BI_Game_Tweaks_Disassemble",
|
||
setting_type = "startup",
|
||
default_value = true,
|
||
order = "b[tweaks]-c2[Disassemble]",
|
||
}
|
||
end
|
||
|
||
|
||
-- Lua API global Variable Viewer (gvv)
|
||
if mods["gvv"] then
|
||
setting_list.BI_Enable_gvv_support = {
|
||
type = "bool-setting",
|
||
name = "BI_Enable_gvv_support",
|
||
setting_type = "startup",
|
||
default_value = false,
|
||
order = "c[compatibility]-c1[debugging_gvv]",
|
||
}
|
||
end
|
||
|
||
local list = {}
|
||
for name, setting in pairs(setting_list) do
|
||
data:extend({setting})
|
||
end
|
||
--[[
|
||
Types of settings:
|
||
<20> startup - game must be restarted if changed (such a setting may affect prototypes' changes)
|
||
<20> runtime-global - per-world setting
|
||
<20> runtime-per-user - per-user setting
|
||
|
||
Types of values:
|
||
<20> bool-setting
|
||
<20> double-setting
|
||
<20> int-setting
|
||
<20> string-setting
|
||
|
||
Files being processed by the game:
|
||
<20> settings.lua
|
||
<20> settings-updates.lua
|
||
<20> settings-final-fixes.lua
|
||
|
||
Using in DATA.lua:
|
||
data:extend({
|
||
{
|
||
type = "int-setting",
|
||
name = "setting-name1",
|
||
setting_type = "runtime-per-user",
|
||
default_value = 25,
|
||
minimum_value = -20,
|
||
maximum_value = 100,
|
||
per_user = true,
|
||
},
|
||
{
|
||
type = "bool-setting",
|
||
name = "setting-name2",
|
||
setting_type = "runtime-per-user",
|
||
default_value = true,
|
||
per_user = true,
|
||
},
|
||
{
|
||
type = "double-setting",
|
||
name = "setting-name3",
|
||
setting_type = "runtime-per-user",
|
||
default_value = -23,
|
||
per_user = true,
|
||
},
|
||
{
|
||
type = "string-setting",
|
||
name = "setting-name4",
|
||
setting_type = "runtime-per-user",
|
||
default_value = "Hello",
|
||
allowed_values = {"Hello", "foo", "bar"},
|
||
per_user = true,
|
||
},
|
||
})
|
||
|
||
Using in LOCALE.cfg:
|
||
[mod-setting-name]
|
||
setting-name1=Seting name
|
||
[mod-setting-description]
|
||
setting-name1=Seting description
|
||
|
||
Using in CONTROL.lua and in other code for reading:
|
||
EVENT: on_runtime_mod_setting_changed - called when a player changed its setting
|
||
event.player_index
|
||
event.setting
|
||
GET: settings.startup["setting-name"].value - current value of startup setting; can be used in DATA.lua
|
||
GET: settings.storage["setting-name"].value - current value of per-world setting
|
||
GET: set = settings.get_player_settings(LuaPlayer) - current values for per-player settings; then use set["setting-name"].value
|
||
GET: settings.player - default values
|
||
]]
|