technic/technic_worldgen/crafts.lua

195 lines
5.2 KiB
Lua

local S = minetest.get_translator("technic_worldgen")
minetest.register_craftitem(":technic:uranium_lump", {
description = S("Uranium Lump"),
inventory_image = "technic_uranium_lump.png",
})
minetest.register_alias("technic:uranium", "technic:uranium_lump")
minetest.register_craftitem(":technic:uranium_ingot", {
description = S("Uranium Ingot"),
inventory_image = "technic_uranium_ingot.png",
groups = {uranium_ingot=1},
})
minetest.register_craftitem(":technic:chromium_lump", {
description = S("Chromium Lump"),
inventory_image = "technic_chromium_lump.png",
})
minetest.register_craftitem(":technic:chromium_ingot", {
description = S("Chromium Ingot"),
inventory_image = "technic_chromium_ingot.png",
})
minetest.register_craftitem(":technic:zinc_lump", {
description = S("Zinc Lump"),
inventory_image = "technic_zinc_lump.png",
})
minetest.register_craftitem(":technic:zinc_ingot", {
description = S("Zinc Ingot"),
inventory_image = "technic_zinc_ingot.png",
})
minetest.register_craftitem(":technic:lead_lump", {
description = S("Lead Lump"),
inventory_image = "technic_lead_lump.png",
})
minetest.register_craftitem(":technic:lead_ingot", {
description = S("Lead Ingot"),
inventory_image = "technic_lead_ingot.png",
})
minetest.register_craftitem(":technic:sulfur_lump", {
description = S("Sulfur Lump"),
inventory_image = "technic_sulfur_lump.png",
})
minetest.register_alias("technic:wrought_iron_ingot", "default:steel_ingot")
minetest.override_item("default:steel_ingot", {
description = S("Wrought Iron Ingot"),
inventory_image = "technic_wrought_iron_ingot.png",
})
minetest.register_craftitem(":technic:cast_iron_ingot", {
description = S("Cast Iron Ingot"),
inventory_image = "technic_cast_iron_ingot.png",
})
minetest.register_craftitem(":technic:carbon_steel_ingot", {
description = S("Carbon Steel Ingot"),
inventory_image = "technic_carbon_steel_ingot.png",
})
minetest.register_craftitem(":technic:stainless_steel_ingot", {
description = S("Stainless Steel Ingot"),
inventory_image = "technic_stainless_steel_ingot.png",
})
local function register_block(block, ingot)
minetest.register_craft({
output = block,
recipe = {
{ingot, ingot, ingot},
{ingot, ingot, ingot},
{ingot, ingot, ingot},
}
})
minetest.register_craft({
output = ingot.." 9",
recipe = {
{block}
}
})
end
register_block("technic:uranium_block", "technic:uranium_ingot")
register_block("technic:chromium_block", "technic:chromium_ingot")
register_block("technic:zinc_block", "technic:zinc_ingot")
register_block("technic:lead_block", "technic:lead_ingot")
register_block("technic:cast_iron_block", "technic:cast_iron_ingot")
register_block("technic:carbon_steel_block", "technic:carbon_steel_ingot")
register_block("technic:stainless_steel_block", "technic:stainless_steel_ingot")
minetest.register_craft({
type = 'cooking',
recipe = "technic:zinc_lump",
output = "technic:zinc_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:chromium_lump",
output = "technic:chromium_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:uranium_lump",
output = "technic:uranium_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:lead_lump",
output = "technic:lead_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = minetest.registered_aliases["technic:wrought_iron_ingot"],
output = "technic:cast_iron_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:cast_iron_ingot",
cooktime = 2,
output = "technic:wrought_iron_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:carbon_steel_ingot",
cooktime = 2,
output = "technic:wrought_iron_ingot",
})
local function for_each_registered_item(action)
local already_reg = {}
for k, _ in pairs(minetest.registered_items) do
table.insert(already_reg, k)
end
local really_register_craftitem = minetest.register_craftitem
minetest.register_craftitem = function(name, def)
really_register_craftitem(name, def)
action(string.gsub(name, "^:", ""))
end
local really_register_tool = minetest.register_tool
minetest.register_tool = function(name, def)
really_register_tool(name, def)
action(string.gsub(name, "^:", ""))
end
local really_register_node = minetest.register_node
minetest.register_node = function(name, def)
really_register_node(name, def)
action(string.gsub(name, "^:", ""))
end
for _, name in ipairs(already_reg) do
action(name)
end
end
local steel_to_iron = {}
for _, i in ipairs({
"default:axe_steel",
"default:pick_steel",
"default:shovel_steel",
"default:sword_steel",
"doors:door_steel",
"farming:hoe_steel",
"glooptest:hammer_steel",
"glooptest:handsaw_steel",
"glooptest:reinforced_crystal_glass",
"mesecons_doors:op_door_steel",
"mesecons_doors:sig_door_steel",
"vessels:steel_bottle",
}) do
steel_to_iron[i] = true
end
for_each_registered_item(function(item_name)
local item_def = minetest.registered_items[item_name]
if steel_to_iron[item_name] and string.find(item_def.description, "Steel") then
-- TODO: Fix this line
-- This is not the good way to do this because it breaks translations
minetest.override_item(item_name, { description = string.gsub(item_def.description, "Steel", "Iron") })
end
end)