From 22076c0522891ba265dd9cc3a5c39de2291aa7ed Mon Sep 17 00:00:00 2001 From: Brevven Date: Tue, 24 Dec 2024 02:37:59 -0800 Subject: [PATCH] fluid mining tech to replace uranium mining and some cleanup and adjustment of fluid setting handling --- control-util.lua | 13 ++++++++++ control.lua | 4 ++- data-final-fixes.lua | 6 ++--- data-util.lua | 52 +++++++++++++++++++++++++++++++++++++ locale/en/titanium.cfg | 2 ++ me.lua | 4 +-- titanium-data-settings.lua | 13 +--------- titanium-recipe-updates.lua | 13 +++++++--- titanium-recipe.lua | 2 +- 9 files changed, 86 insertions(+), 23 deletions(-) diff --git a/control-util.lua b/control-util.lua index 9000745..e6ddddc 100644 --- a/control-util.lua +++ b/control-util.lua @@ -12,6 +12,19 @@ function decode(data) return table.concat(str, "") end +function util.check_fluid_mining() + for i, force in pairs(game.forces) do + if ( + (force.technologies["uranium-processing"] and force.technologies["uranium-processing"].researched) or + (force.technologies["titanium-processing"] and force.technologies["titanium-processing"].researched) or + (force.technologies["dummy-processing"] and force.technologies["dummy-processing"].researched) or + false + ) then + force.technologies["fluid-mining"].researched = true + end + end +end + function util.get_list() local p = game.item_prototypes[me.name.."-list"] if p then diff --git a/control.lua b/control.lua index d3f5a12..1736d4d 100644 --- a/control.lua +++ b/control.lua @@ -1 +1,3 @@ - +local util = require("control-util") + +script.on_init(util.check_fluid_mining) diff --git a/data-final-fixes.lua b/data-final-fixes.lua index dd53bb6..09220d1 100644 --- a/data-final-fixes.lua +++ b/data-final-fixes.lua @@ -49,12 +49,12 @@ require("titanium-recipe-final-modmash") require("compatibility/248k-final") - -- Second part of hack for endgame combat - require("compatibility/titanium-endgame-combat-final") -- Hack for AutoTrainDepot - require("compatibility/titanium-auto-train-depot-final") + +local util = require("__bztitanium__.data-util"); +util.use_fluid_mining_final() diff --git a/data-util.lua b/data-util.lua index c290585..53af1ba 100644 --- a/data-util.lua +++ b/data-util.lua @@ -11,6 +11,10 @@ util.get_setting = util.me.get_setting util.titanium_plate = "" util.titanium_processing = "" +util.A = {{"automation-science-pack", 1}} +util.AL = {{"automation-science-pack", 1}, {"logistic-science-pack", 1}} +util.ALC = {{"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}} + if mods["FactorioExtended-Plus-Core"] then util.titanium_plate = "titanium-alloy" else @@ -109,6 +113,54 @@ function util.contains(table, sought) return false end +-- Replace 'uranium-mining' tech with 'fluid-mining', defaulting to same costs +function util.add_fluid_mining() + if data.raw.technology["fluid-mining"] then return end + util.remove_raw("technology", "uranium-mining") + data:extend({ + { + type = "technology", + name = "fluid-mining", + icon = "__"..util.me.name.."__/graphics/technology/fluid-mining.png", + icon_size = 256, + effects = + { + { + type = "mining-with-fluid", + modifier = true + } + }, + prerequisites = {"chemical-science-pack", "concrete"}, + unit = + { + count = 100, + ingredients = + { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1} + }, + time = 30, + } + } + }) +end + +-- Final fix to make sure nothing uses "uranium-mining" +function util.use_fluid_mining_final() + for i, tech in pairs(data.raw.technology) do + if tech.prerequisites then + for j, pre in pairs(tech.prerequisites) do + if pre == "uranium-mining" then + util.add_prerequisite(tech.name, "fluid-mining") + util.remove_prerequisite(tech.name, "uranium-mining") + break + end + end + end + end +end + -- se landfill -- params: ore, icon_size diff --git a/locale/en/titanium.cfg b/locale/en/titanium.cfg index f5099fc..2b27fae 100644 --- a/locale/en/titanium.cfg +++ b/locale/en/titanium.cfg @@ -25,8 +25,10 @@ vacuum=Vacuum titanium-processing=Titanium Processing enriched-titanium=Enriched Titanium titanium-matter-processing=Titanium conversion +fluid-mining=Fluid mining [technology-description] +fluid-mining=Allows supply of fluids to mining drills to enable mining of certain resources. titanium-processing=Process titanium ore into titanium plates enriched-titanium=Enrich titanium ore, purifying with hydrogen chloride [fluid=hydrogen-chloride] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct. diff --git a/me.lua b/me.lua index a201eef..46d5642 100644 --- a/me.lua +++ b/me.lua @@ -4,7 +4,7 @@ me.name = "bztitanium" me.titanium_plate = "" me.titanium_processing = "" -if mods["FactorioExtended-Plus-Core"] then +if mods and mods["FactorioExtended-Plus-Core"] then me.titanium_plate = "titanium-alloy" else me.titanium_plate = "titanium-plate" @@ -17,7 +17,7 @@ me.recipes = {me.titanium_plate, "molten-titanium", "enriched-titanium-smelting-vulcanite"} -if mods["pyrawores"] then +if mods and mods["pyrawores"] then me.titanium_processing = "titanium-mk01" else me.titanium_processing = "titanium-processing" diff --git a/titanium-data-settings.lua b/titanium-data-settings.lua index 76b409d..e6d999f 100644 --- a/titanium-data-settings.lua +++ b/titanium-data-settings.lua @@ -10,17 +10,6 @@ end if mining_fluid == "chlorine" and data.raw.fluid["chlorine"] and mods["Krastorio2"] then data.raw.technology[util.me.titanium_processing].prerequisites = {"kr-fluids-chemistry"} - data.raw.technology[util.me.titanium_processing].unit.ingredients = { - {"basic-tech-card", 1}, {"automation-science-pack", 1}, {"logistic-science-pack", 1}} -elseif mining_fluid == "sulfuric-acid" then - data.raw.technology[util.me.titanium_processing].prerequisites = {"uranium-mining"} + data.raw.technology[util.me.titanium_processing].unit.ingredients = util.ALC else - if not mods["Pre0-17-60Oil"] then - util.set_tech_recipe("solar-panel-equipment", { - {"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) - util.set_tech_recipe("belt-immunity-equipment", { - {"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) - util.set_tech_recipe("night-vision-equipment", { - {"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) - end end diff --git a/titanium-recipe-updates.lua b/titanium-recipe-updates.lua index 41ddd02..ac0c64f 100644 --- a/titanium-recipe-updates.lua +++ b/titanium-recipe-updates.lua @@ -2,6 +2,7 @@ -- local util = require("__bztitanium__.data-util"); +util.add_fluid_mining() -- Space Age if mods["space-age"] then util.replace_some_ingredient("space-platform-foundation", "steel-plate", 15, util.me.titanium_plate, 15) @@ -18,11 +19,11 @@ if mods["space-age"] then util.replace_ingredient("express-transport-belt", "iron-gear-wheel", "titanium-plate", 2) util.replace_ingredient("bulk-inserter", "iron-gear-wheel", "titanium-plate", 3) util.add_prerequisite("logistics-3", "titanium-processing") - util.set_tech_recipe("logistics-3", {{"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) + util.set_tech_recipe("logistics-3", util.ALC) util.add_prerequisite("bulk-inserter", "titanium-processing") - util.set_tech_recipe("bulk-inserter", {{"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) - util.set_tech_recipe("inserter-capacity-bonus-1", {{"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) - util.set_tech_recipe("inserter-capacity-bonus-2", {{"automation-science-pack", 1}, {"logistic-science-pack", 1}, {"chemical-science-pack", 1}}) + util.set_tech_recipe("bulk-inserter", util.ALC) + util.set_tech_recipe("inserter-capacity-bonus-1", util.ALC) + util.set_tech_recipe("inserter-capacity-bonus-2", util.ALC) end if (not mods["bobplates"]) then @@ -32,6 +33,10 @@ if (not mods["bobplates"]) then -- Generally, steel-based equipment techs require solar panel tech, so only require -- titanium processing for that. util.add_prerequisite("solar-panel-equipment", util.me.titanium_processing) + util.set_tech_recipe("solar-panel-equipment", util.ALC) + util.set_tech_recipe("belt-immunity-equipment", util.ALC) + util.set_tech_recipe("night-vision-equipment", util.ALC) + -- All equipment that uses steel now uses titanium. Who wants to carry around steel! diff --git a/titanium-recipe.lua b/titanium-recipe.lua index fd4e191..27ecb22 100644 --- a/titanium-recipe.lua +++ b/titanium-recipe.lua @@ -68,7 +68,7 @@ data:extend({ } or nil, }, research_trigger = {type="mine-entity", entity="titanium-ore"}, - prerequisites = {"lubricant"}, + prerequisites = {"lubricant", "uranium-mining"}, order = "b-b" }, -- mods["TheBigFurnace"] and {