Update GUI Research Tracker (#390)

* Update research.lua

* Update research.lua

* Update research.lua

* Format config and move pollution ageing

* Update research.lua

* Update research.lua

* Update research.lua

---------

Co-authored-by: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com>
This commit is contained in:
2025-04-27 07:34:35 +09:00
committed by GitHub
parent 79ab6db28a
commit aee15341bd
3 changed files with 38 additions and 39 deletions

View File

@@ -7,21 +7,27 @@ return {
queue_amount = 3,
mod_set = "base",
mod_set_lookup = {
"space-age"
"space-age",
},
-- this enable 20 more inventory for each mining productivity level up to 4
bonus_inventory = {
enabled = true,
res = {
-- Mining Productivity
log = {
["base"] = {
["name"] = "mining-productivity-4",
["level"] = 4,
["level"] = 4
},
["space-age"] = {
["name"] = "mining-productivity-3",
["level"] = 3,
}
["level"] = 3
},
},
res = {
-- Mining Productivity
["mining-productivity"] = true,
["mining-productivity-2"] = true,
["mining-productivity-3"] = true,
["mining-productivity-4"] = true,
},
name = "character_inventory_slots_bonus",
rate = 5,
@@ -73,20 +79,20 @@ return {
["productivity-module-3"] = 300,
["speed-module-3"] = 300,
["rocket-silo"] = 300,
["space-science-pack"] = 300
["space-science-pack"] = 300,
},
["space-age"] = {
["logistic-science-pack"] = 3600,
["military-science-pack"] = 3600,
["chemical-science-pack"] = 4500,
["utility-science-pack"] = 5400,
["production-science-pack"] = 5400,
["space-science-pack"] = 5400,
["metallurgic-science-pack"] = 6300,
["electromagnetic-science-pack"] = 6300,
["agricultural-science-pack"] = 6300,
["cryogenic-science-pack"] = 6300,
["promethium-science-pack"] = 7200
["chemical-science-pack"] = 5400,
["utility-science-pack"] = 7200,
["production-science-pack"] = 7200,
["space-science-pack"] = 7200,
["metallurgic-science-pack"] = 10800,
["electromagnetic-science-pack"] = 10800,
["agricultural-science-pack"] = 10800,
["cryogenic-science-pack"] = 10800,
["promethium-science-pack"] = 14400,
}
},
inf_res = {
@@ -157,7 +163,7 @@ return {
["rocket-part-productivity"] = 1,
-- Follower Robot Count
["follower-robot-count-5"] = 5,
}
},
},
-- prevent research up to a certain level
limit_res = {

View File

@@ -85,32 +85,25 @@ end
local function research_notification(event)
if config.inf_res[config.mod_set][event.research.name] then
if event.research.name == config.bonus_inventory.res[config.mod_set].name then
if event.research.level == config.bonus_inventory.res[config.mod_set].level + 1 then
-- Add run result to log
research_add_log()
end
if config.bonus_inventory.enabled then
event.research.force[config.bonus_inventory.name] = math.max((event.research.level - 1) * config.bonus_inventory.rate, config.bonus_inventory.limit)
end
if config.pollution_ageing_by_research then
game.map_settings.pollution.ageing = math.min(10, event.research.level / 5)
end
if event.research.name == config.bonus_inventory.log[config.mod_set].name
and event.research.level == config.bonus_inventory.log[config.mod_set].level + 1 then
-- Add run result to log
research_add_log()
end
if not (event.by_script) then
game.print{ "research.inf", research_time_format(game.tick), event.research.name, event.research.level - 1 }
end
else
if not (event.by_script) then
game.print{ "research.msg", research_time_format(game.tick), event.research.name }
end
elseif not (event.by_script) then
game.print{ "research.msg", research_time_format(game.tick), event.research.name }
end
if config.bonus_inventory.enabled and (event.research.name == "mining-productivity-1" or event.research.name == "mining-productivity-2" or event.research.name == "mining-productivity-3") then
event.research.force[config.bonus_inventory.name] = event.research.level * config.bonus_inventory.rate
end
if config.bonus_inventory.enabled and config.bonus_inventory.res[event.research.name] then
event.research.force[config.bonus_inventory.name] = math.min((event.research.level - 1) * config.bonus_inventory.rate, config.bonus_inventory.limit)
end
if config.pollution_ageing_by_research and config.bonus_inventory.res[event.research.name] then
game.map_settings.pollution.ageing = math.min(10, event.research.level / 5)
end
end

View File

@@ -23,7 +23,7 @@ end)
--- @param silent boolean True when no message should be printed
function module.res_queue(force, silent)
local res_q = force.research_queue
local res = force.technologies[config.bonus_inventory.res[config.mod_set].name]
local res = force.technologies[config.bonus_inventory.log[config.mod_set].name]
if #res_q < config.queue_amount then
for i = #res_q, config.queue_amount - 1 do
@@ -71,7 +71,7 @@ local function on_research_finished(event)
if not research.res_queue_enable then return end
local force = event.research.force
local research = assert(config.bonus_inventory.res[config.mod_set], "Unknown mod set: " .. tostring(config.mod_set))
local research = assert(config.bonus_inventory.log[config.mod_set], "Unknown mod set: " .. tostring(config.mod_set))
local technology = assert(force.technologies[research.name], "Unknown technology: " .. tostring(research.name))
if technology.level > research.level then
module.res_queue(force, event.by_script)