Bio_Industries_2/Bio_Industries_2/settings.lua
Simon Brodtmann 3051414d98 Cleanup
2025-07-05 22:31:21 +02:00

205 lines
5.9 KiB
Lua
Raw Blame History

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
]]