From 68b7bcc28e39bdf0926072b834eeeeec0ee6c721 Mon Sep 17 00:00:00 2001
From: Zefram <zefram@fysh.org>
Date: Thu, 22 May 2014 20:57:50 +0200
Subject: [PATCH] split default iron/steel into three metals

---
 technic_worldgen/crafts.lua |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/technic_worldgen/crafts.lua b/technic_worldgen/crafts.lua
index fc593a6..e2d5236 100644
--- a/technic_worldgen/crafts.lua
+++ b/technic_worldgen/crafts.lua
@@ -34,6 +34,23 @@
 	inventory_image = "technic_brass_ingot.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",
@@ -61,6 +78,8 @@
 register_block("technic:chromium_block", "technic:chromium_ingot")
 register_block("technic:zinc_block", "technic:zinc_ingot")
 register_block("technic:brass_block", "technic:brass_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({
@@ -75,3 +94,59 @@
 	output = "technic:chromium_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_craftitem(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
+	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",
+	"mesecons_doors:op_door_steel",
+	"mesecons_doors:sig_door_steel",
+	"vessels:steel_bottle",
+}) do
+	steel_to_iron[i] = true
+end
+
+for_each_registered_craftitem(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
+		minetest.override_item(item_name, { description = string.gsub(item_def.description, "Steel", S("Iron")) })
+	end
+end)

--
Gitblit v1.8.0