working settings generative code with rich text

This commit is contained in:
2024-12-11 21:07:10 -06:00
parent 0334d5e738
commit 730fa7bc9b
3 changed files with 115 additions and 1 deletions

View File

@@ -1,15 +1,19 @@
{
"cSpell.words": [
"Aquilo",
"conventionalcommits",
"Factorio",
"factoriopedia",
"Fulgora",
"giga",
"localised",
"Nauvis",
"peta",
"quetta",
"releaserc",
"ronna",
"tera",
"Vulcanus",
"worktree",
"yotta",
"zetta"

View File

@@ -3,3 +3,47 @@ title=Research Multipliers
[mod-description]
description=Advanced customizable multipliers for research, including pack, category, infinite, and individual technology multipliers.
[mod-setting-name]
global-multiplier=Global Research Multiplier
essential-research-multiplier=Essential Research Multiplier
infinite-research-multiplier=Infinite Research Multiplier
planet-discovery-research-multiplier=[planet=nauvis] Planet Discovery Research Multiplier
interplanetary-research-multiplier=[space-age] Interplanetary Research Multiplier
automation-science-multiplier=[item=automation-science-pack] Automation Science Multiplier
logistic-science-multiplier=[item=logistic-science-pack] Logistic Science Multiplier
military-science-multiplier=[item=military-science-pack] Military Science Multiplier
chemical-science-multiplier=[item=chemical-science-pack] Chemical Science Multiplier
production-science-multiplier=[item=production-science-pack] Production Science Multiplier
utility-science-multiplier=[item=utility-science-pack] Utility Science Multiplier
space-science-multiplier=[item=space-science-pack] Space Science Multiplier
metallurgic-science-multiplier=[item=metallurgic-science-pack] Metallurgic Science Multiplier
electromagnetic-science-multiplier=[item=electromagnetic-science-pack] Electromagnetic Science Multiplier
agricultural-science-multiplier=[item=agricultural-science-pack] Agricultural Science Multiplier
cryogenic-science-multiplier=[item=cryogenic-science-pack] Cryogenic Science Multiplier
promethium-science-multiplier=[item=promethium-science-pack] Promethium Science Multiplier
[mod-setting-description]
global-multiplier=Multiplier for all research.\nPlease read the mod page for more information on how this setting interacts with others.
essential-research-multiplier=A multiplier for all research considered 'essential' when you tick the 'Show only essential technologies' in the technology tree interface. \nPlease read the mod page for more information on how this setting interacts with others.
infinite-research-multiplier=A multiplier for all infinite research. \nPlease read the mod page for more information on how this setting interacts with others.
interplanetary-research-multiplier=A multiplier for all research that uses science packs from planets other than Nauvis. \nPlease read the mod page for more information on how this setting interacts with others.
planet-discovery-research-multiplier=A multiplier for all 'planet discovery' research ([planet=vulcanus] Vulcanus, [planet=fulgora] Fulgora, [planet=gleba] Gleba, [planet=aquilo] Aquilo). \nPlease read the mod page for more information on how this setting interacts with others.
automation-science-multiplier=A multiplier for all research that uses [item=automation-science-pack] Automation science.\nPlease read the mod page for more information on how this setting interacts with others.
logistic-science-multiplier=A multiplier for all research that uses [item=logistic-science-pack] Logistic science.\nPlease read the mod page for more information on how this setting interacts with others.
military-science-multiplier=A multiplier for all research that uses [item=military-science-pack] Military science.\nPlease read the mod page for more information on how this setting interacts with others.
chemical-science-multiplier=A multiplier for all research that uses [item=chemical-science-pack] Chemical science.\nPlease read the mod page for more information on how this setting interacts with others.
production-science-multiplier=A multiplier for all research that uses [item=production-science-pack] Production science.\nPlease read the mod page for more information on how this setting interacts with others.
utility-science-multiplier=A multiplier for all research that uses [item=utility-science-pack] Utility science.\nPlease read the mod page for more information on how this setting interacts with others.
space-science-multiplier=A multiplier for all research that uses [item=space-science-pack] Space science.\nPlease read the mod page for more information on how this setting interacts with others.
metallurgic-science-multiplier=A multiplier for all research that uses [item=metallurgic-science-pack] Metallurgic science.\nPlease read the mod page for more information on how this setting interacts with others.
electromagnetic-science-multiplier=A multiplier for all research that uses [item=electromagnetic-science-pack] Electromagnetic science.\nPlease read the mod page for more information on how this setting interacts with others.
agricultural-science-multiplier=A multiplier for all research that uses [item=agricultural-science-pack] Agricultural science.\nPlease read the mod page for more information on how this setting interacts with others.
cryogenic-science-multiplier=A multiplier for all research that uses [item=cryogenic-science-pack] Cryogenic science.\nPlease read the mod page for more information on how this setting interacts with others.
promethium-science-multiplier=A multiplier for all research that uses [item=promethium-science-pack] Promethium science.\nPlease read the mod page for more information on how this setting interacts with others.

66
settings.lua Normal file
View File

@@ -0,0 +1,66 @@
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)