bzzirconium2/zirconium-recipe.lua
2022-07-07 21:05:59 -07:00

323 lines
8.9 KiB
Lua

-- Zirconium smelting, etc
local util = require("__bzzirconium__.data-util");
-- data:extend({
--
-- })
data:extend({
{
type = "item",
name = "zirconia",
icon = "__bzzirconium__/graphics/icons/zirconia.png",
icon_size = 128,
subgroup = "raw-material",
order = "z[zirconia]",
stack_size = util.get_stack_size(200)
},
{
type = "recipe",
name = "zirconia",
category = "smelting",
order = "z[zirconia]",
icons = (mods["Krastorio2"] and
{
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128 },
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size = 64, scale=0.25, shift= {-8, -8}},
} or {
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128, },
}
),
normal = (mods["Krastorio2"] and
{
main_product = "zirconia",
enabled = false,
energy_required = 8,
ingredients = {{"zircon", 5}},
results = mods.bztitanium and util.me.byproduct() and {
{name="zirconia", amount_min=4, amount_max=5},
{name="titanium-ore", amount=1, probability=.5}
} or {{"zirconia", 5}}
} or
{
main_product = "zirconia",
enabled = false,
energy_required = 3.2,
ingredients = {{"zircon", 1}},
results = mods.bztitanium and util.me.byproduct() and {
{name="zirconia", amount=2, probability=.95},
{name="titanium-ore", amount=1, probability=.1}
} or {{"zirconia", 2}}
}),
expensive =
{
main_product = "zirconia",
enabled = false,
energy_required = 3.2,
ingredients = {{"zircon", 1}},
results = mods.bztitanium and util.me.byproduct() and {
{"zirconia", 1}, {name="titanium-ore", amount=1, probability=.05}
} or {{"zirconia", 2}}
}
},
{
type = "item",
name = "zirconium-plate",
icon = "__bzzirconium__/graphics/icons/zirconium-plate.png",
icon_size = 128,
subgroup = "raw-material",
order = "d[zirconium-plate]",
stack_size = util.get_stack_size(100)
},
{
type = "recipe",
name = "zirconium-plate",
category = "smelting",
subgroup = "raw-material",
order = "d[zirconium-plate]",
icons = (mods["Krastorio2"] and
{
{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128 },
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128, scale=0.125, shift= {-8, -8}},
} or {
{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128, },
}
),
normal = (mods["Krastorio2"] and
{
enabled = false,
energy_required = 8,
ingredients = {{"zirconia", 15}},
result = "zirconium-plate",
result_count = 5,
} or
{
enabled = false,
energy_required = 9.6,
ingredients = {{"zirconia", 3}},
result = "zirconium-plate",
result_count = 1,
}),
expensive =
{
enabled = false,
energy_required = 9.6,
ingredients = {{"zirconia", 6}},
result = "zirconium-plate",
}
},
{
type = "technology",
name = "zirconia-processing",
icon_size = 340,
icon = "__bzzirconium__/graphics/technology/zirconia-processing.png",
effects =
{
{
type = "unlock-recipe",
recipe = "zirconia"
},
{
type = "unlock-recipe",
recipe = "zirconium-plate",
},
-- mods["TheBigFurnace"] and {
-- type = "unlock-recipe",
-- recipe = "big-zirconium-plate",
-- } or nil,
-- mods["TheBigFurnace"] and {
-- type = "unlock-recipe",
-- recipe = "big-zirconia",
-- } or nil,
},
unit =
{
count = 75,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
},
time = 30,
},
prerequisites = {"automation-2", (not mods.bzzirconium and "advanced-material-processing") or nil },
order = "z"
},
})
-- cermet only if setting enabled
if util.me.use_cermet() then
local cermet_i = {{"zirconia", 2}, {"copper-plate", 1}}
if mods.bztitanium then
local tme = require("__bztitanium__.me");
table.insert(cermet_i, {tme.titanium_plate, 1})
end
if mods.bzsilicon then
table.insert(cermet_i, {"silica", 1})
end
if mods.bzaluminum then
table.insert(cermet_i, {"alumina", 1})
end
data:extend({
{
type = "item",
name = "cermet",
icon = "__bzzirconium__/graphics/icons/cermet.png",
icon_size = 128,
pictures = {
{filename = "__bzzirconium__/graphics/icons/cermet.png", size=128, scale=0.125},
{filename = "__bzzirconium__/graphics/icons/cermet-1.png", size=128, scale=0.125},
{filename = "__bzzirconium__/graphics/icons/cermet-2.png", size=128, scale=0.125},
{filename = "__bzzirconium__/graphics/icons/cermet-3.png", size=128, scale=0.125},
{filename = "__bzzirconium__/graphics/icons/cermet-4.png", size=128, scale=0.125},
},
subgroup = "intermediate-product",
order = "z[cermet]",
stack_size = util.get_stack_size(200)
},
{
type = "recipe",
name = "cermet",
category = "crafting",
subgroup = "intermediate-product",
order = "z[zirconia]",
icons = { { icon = "__bzzirconium__/graphics/icons/cermet.png", icon_size = 128, } },
enabled = false,
energy_required = #cermet_i + 1,
ingredients = cermet_i,
result = "cermet",
result_count = #cermet_i + 1,
},
{
type = "technology",
name = "cermet",
icon_size = 512,
icon = "__bzzirconium__/graphics/technology/cermet.png",
effects =
{
{
type = "unlock-recipe",
recipe = "cermet"
},
},
unit =
{
count = 100,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
},
time = 30,
},
prerequisites = {"zirconia-processing"},
order = "c"
},
})
if mods.bztitanium then
util.add_prerequisite("cermet", util.titanium_processing)
end
end
-- sorting
if util.me.enable_sorting() then
data:extend({
{
type = "recipe",
name = "sort-stone-zircon",
category = "crafting",
subgroup = "raw-resource",
order = "bzz",
icons = {
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size = 64 },
{ icon = "__base__/graphics/icons/stone.png", icon_size = 64, scale=0.25, shift= {-8, -8}},
},
enabled = true,
energy_required = 1,
ingredients = {{"stone", 2}},
results = {
{type="item", name="zircon", amount=1, probability=.999999},
{type="item", name="stone", amount=1, probability=0.5},
}
},
{
type = "recipe",
name = "sort-zircon-stone",
category = "crafting",
subgroup = "raw-resource",
order = "bzz",
icons = {
{ icon = "__base__/graphics/icons/stone.png", icon_size = 64 },
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size = 64, scale=0.25, shift= {-8, -8}},
},
enabled = true,
energy_required = 1,
ingredients = {{"zircon", 2}},
results = {
{type="item", name="stone", amount=1, probability=.999999},
{type="item", name="zircon", amount=1, probability=0.5},
}
}
})
end
-- Zirconium Tungstate, only if needed
if mods.bztungsten and (mods["Krastorio2"] or mods["space-exploration"]) then
data:extend({
{
type = "item",
name = "zirconium-tungstate",
icons = {{icon = "__bzzirconium__/graphics/icons/zircon-powder.png",
icon_size = 64, tint = {a=1, r=.95, g=.75, b=0}}},
subgroup = "intermediate-product",
order = "z[zz]",
stack_size = util.get_stack_size(100)
},
{
type = "recipe",
name = "zirconium-tungstate",
category = "crafting",
subgroup = "intermediate-product",
order = "z[zz]",
enabled = false,
energy_required = 2,
ingredients = {{"zirconium-plate", 1}, {"tungsten-plate", 1},},
result = "zirconium-tungstate",
result_count = 2,
},
})
util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zirconium-tungstate" })
end
-- Zircaloy-4 only if needed
if mods.bztin then
local zircaloyi = {
{"zirconium-plate", 17},
{"tin-plate", 2},
{"iron-plate", 1},
}
data:extend({
{
type = "item",
name = "zircaloy-4",
icons = {{icon = "__bzzirconium__/graphics/icons/zircaloy-4.png", icon_size = 128}},
subgroup = "intermediate-product",
order = "z[zz]",
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "zircaloy-4",
category = "crafting",
order = "z[zz]",
enabled = false,
energy_required = 60,
ingredients = zircaloyi,
result = "zircaloy-4",
result_count = 20,
},
})
util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zircaloy-4" })
end