From df0bf957f670f438f62bc64b7c1454468791be73 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 22 Dec 2025 23:59:39 +0100 Subject: [PATCH] Muluna / Crushing Industry compatibility --- space-age-extended/data-updates.lua | 1 + .../locale/en/space-age-extended.cfg | 2 + .../planets/tier1/muluna/crushing-updates.lua | 11 ++++ .../planets/tier1/muluna/crushing.lua | 59 +++++++++++++++---- .../planets/tier1/muluna/updates.lua | 1 + 5 files changed, 62 insertions(+), 12 deletions(-) create mode 100644 space-age-extended/data-updates.lua create mode 100644 space-age-extended/locale/en/space-age-extended.cfg create mode 100644 space-age-extended/planets/tier1/muluna/crushing-updates.lua create mode 100644 space-age-extended/planets/tier1/muluna/updates.lua diff --git a/space-age-extended/data-updates.lua b/space-age-extended/data-updates.lua new file mode 100644 index 0000000..6e1aad8 --- /dev/null +++ b/space-age-extended/data-updates.lua @@ -0,0 +1 @@ +require("planets/tier1/muluna/updates") \ No newline at end of file diff --git a/space-age-extended/locale/en/space-age-extended.cfg b/space-age-extended/locale/en/space-age-extended.cfg new file mode 100644 index 0000000..b050774 --- /dev/null +++ b/space-age-extended/locale/en/space-age-extended.cfg @@ -0,0 +1,2 @@ +[technology-name] +asteroid-crushing=Asteroid crushing \ No newline at end of file diff --git a/space-age-extended/planets/tier1/muluna/crushing-updates.lua b/space-age-extended/planets/tier1/muluna/crushing-updates.lua new file mode 100644 index 0000000..f6c1272 --- /dev/null +++ b/space-age-extended/planets/tier1/muluna/crushing-updates.lua @@ -0,0 +1,11 @@ +local Technology = require("__cf-lib__/data/Technology") + +-- Crushing productivity +Technology:new("ore-crushing-productivity-1") + :setPrerequisites({ "space-science-pack" }) + :setIngredients({ "wood-science-pack", "steam-science-pack", "automation-science-pack", "logistic-science-pack", "space-science-pack" }) +Technology:new("ore-crushing-productivity-2") + :addPrerequisite("production-science-pack") + :setIngredients({ "wood-science-pack", "steam-science-pack", "automation-science-pack", "logistic-science-pack", "space-science-pack", "production-science-pack" }) +Technology:new("ore-crushing-productivity-3") + :removePrerequisite("production-science-pack") \ No newline at end of file diff --git a/space-age-extended/planets/tier1/muluna/crushing.lua b/space-age-extended/planets/tier1/muluna/crushing.lua index 72a952d..da1d77c 100644 --- a/space-age-extended/planets/tier1/muluna/crushing.lua +++ b/space-age-extended/planets/tier1/muluna/crushing.lua @@ -3,26 +3,61 @@ local Recipe = require("__cf-lib__/data/Recipe") -- Move crusher to Muluna Technology:new("engine"):removeRecipe("electric-crusher") -Technology:new("planet-discovery-muluna"):addRecipe("electric-crusher") Technology:new("ore-crushing") :setPrerequisites({ "space-science-pack" }) :addIngredient("space-science-pack") --- Remove steam entities +-- Remove Muluna crushers in favor of Crushing Industry crushers data.raw.technology["muluna-steam-crusher"] = nil +data.raw.technology["crusher-2"] = nil data.raw.recipe["muluna-steam-crusher"] = nil +data.raw.recipe["crusher-2"] = nil data.raw.item["muluna-steam-crusher"] = nil +data.raw.item["crusher-2"] = nil data.raw["assembling-machine"]["muluna-steam-crusher"] = nil +data.raw["assembling-machine"]["crusher-2"] = nil Technology:new("space-science-pack") - :replacePrerequisite("muluna-steam-crusher", "muluna-advanced-boiler") - .prototype.research_trigger.entity = "electric-crusher" + :replacePrerequisite("muluna-steam-crusher", "muluna-advanced-boiler") + .prototype.research_trigger.entity = "electric-crusher" Recipe:new("interstellar-science-pack"):replaceIngredient("muluna-steam-crusher", "electric-crusher") --- Crushing productivity -Technology:new("ore-crushing-productivity-1") - :setIngredients({ "wood-science-pack", "steam-science-pack", "automation-science-pack", "logistic-science-pack", "space-science-pack" }) -Technology:new("ore-crushing-productivity-2") - :addPrerequisite("production-science-pack") - :setIngredients({ "wood-science-pack", "steam-science-pack", "automation-science-pack", "logistic-science-pack", "space-science-pack", "production-science-pack" }) -Technology:new("ore-crushing-productivity-3") - :removePrerequisite("production-science-pack") \ No newline at end of file +-- Only hide vanilla crusher to not cause problems with compatibility code +local prototypes = { + data.raw["assembling-machine"]["crusher"], + data.raw.item["crusher"], + data.raw.recipe["crusher"] +} +for _, prototype in pairs(prototypes) do + table.assign(prototype, { + hidden = true, + hidden_in_factoriopedia = true + }) +end +data.raw["assembling-machine"]["crusher"].next_upgrade = nil + +-- Change vanilla crusher technology so it unlocks all asteroid crushing at once +Technology:new("crusher") + :removeRecipe("crusher") + :addRecipe("electric-crusher") + :addRecipe("carbonic-asteroid-crushing") + :addRecipe("metallic-asteroid-crushing") + :addRecipe("oxide-asteroid-crushing") + :addRecipe("anorthite-crushing") + :assign({ + localised_name = { "asteroid-crushing" }, + prerequisites = { "planet-discovery-muluna" }, + unit = { + count = 500, + time = 30, + ingredients = { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1} + } + } + -- TODO: icon + }) +Technology:new("carbonic-asteroid-crushing"):removeRecipe("carbonic-asteroid-crushing") +Technology:new("metallic-asteroid-crushing"):removeRecipe("metallic-asteroid-crushing") +Technology:new("oxide-asteroid-crushing"):removeRecipe("oxide-asteroid-crushing") +--Technology:new("anorthite-crushing"):removeRecipe("anorthite-crushing") \ No newline at end of file diff --git a/space-age-extended/planets/tier1/muluna/updates.lua b/space-age-extended/planets/tier1/muluna/updates.lua new file mode 100644 index 0000000..db98250 --- /dev/null +++ b/space-age-extended/planets/tier1/muluna/updates.lua @@ -0,0 +1 @@ +require("crushing-updates") \ No newline at end of file