split default iron/steel into three metals
authorZefram <zefram@fysh.org>
Fri, 16 May 2014 21:02:49 +0000 (22:02 +0100)
committerRealBadAngel <maciej.kasatkin@o2.pl>
Thu, 22 May 2014 18:57:50 +0000 (20:57 +0200)
Override the default mod's iron/steel substance, replacing it with three
metals: wrought iron (pure iron), carbon steel (iron alloyed with a little
carbon), and cast iron (iron alloyed with lots of carbon).  Wrought iron
is easiest to refine, then cast iron, and carbon steel the most difficult,
matching the historical progression.  Recipes that used default steel are
changed to use one of the three, the choice of alloy for each application
being both somewhat realistic and also matching up with game progression.

The default:steel{_ingot,block} items are identified specifically with
wrought iron.  This makes the default refining recipes work appropriately.
Iron-using recipes defined outside technic are thus necessarily
reinterpreted to use wrought iron, which is mostly appropriate.
Some objects are renamed accordingly.

Rather than use the default steel textures for wrought iron, with technic
providing textures for the other two, technic now provides textures for
all three metals.  This avoids problems that would occur with texture
packs that provide default_steel_{ingot,block} textures that are not
intended to support this wrought-iron/carbon-steel/cast-iron distinction.
A texture pack can provide a distinct set of three textures specifically
for the situation where this distinction is required.

Incidentally make grinding and alloy cooking recipes work correctly when
ingredients are specified by alias.

50 files changed:
concrete/init.lua
notes_on_iron [new file with mode: 0644]
technic/crafts.lua
technic/legacy.lua
technic/locale/de.txt
technic/locale/es.txt
technic/locale/it.txt
technic/locale/template.txt
technic/machines/HV/quarry.lua
technic/machines/HV/solar_array.lua
technic/machines/LV/alloy_furnace.lua
technic/machines/LV/battery_box.lua
technic/machines/LV/cnc.lua
technic/machines/LV/cnc_nodes.lua
technic/machines/LV/electric_furnace.lua
technic/machines/LV/solar_array.lua
technic/machines/LV/solar_panel.lua
technic/machines/MV/solar_array.lua
technic/machines/MV/wind_mill.lua
technic/machines/register/alloy_furnace.lua
technic/machines/register/grinder_recipes.lua
technic/machines/switching_station.lua
technic/textures/technic_carbon_steel_dust.png [new file with mode: 0644]
technic/textures/technic_cast_iron_dust.png [new file with mode: 0644]
technic/textures/technic_iron_dust.png [deleted file]
technic/textures/technic_wrought_iron_dust.png [new file with mode: 0644]
technic/textures/technicx32/technic_carbon_steel_dust.png [new file with mode: 0644]
technic/textures/technicx32/technic_cast_iron_dust.png [new file with mode: 0644]
technic/textures/technicx32/technic_iron_dust.png [deleted file]
technic/textures/technicx32/technic_wrought_iron_dust.png [new file with mode: 0644]
technic/tools/cans.lua
technic/tools/mining_lasers.lua
technic_chests/copper_chest.lua
technic_chests/depends.txt
technic_chests/gold_chest.lua
technic_chests/iron_chest.lua
technic_chests/mithril_chest.lua
technic_chests/silver_chest.lua
technic_worldgen/crafts.lua
technic_worldgen/locale/de.txt
technic_worldgen/locale/template.txt
technic_worldgen/nodes.lua
technic_worldgen/textures/technic_carbon_steel_block.png [new file with mode: 0644]
technic_worldgen/textures/technic_carbon_steel_ingot.png [new file with mode: 0644]
technic_worldgen/textures/technic_cast_iron_block.png [new file with mode: 0644]
technic_worldgen/textures/technic_cast_iron_ingot.png [new file with mode: 0644]
technic_worldgen/textures/technic_wrought_iron_block.png [new file with mode: 0644]
technic_worldgen/textures/technic_wrought_iron_ingot.png [new file with mode: 0644]
wrench/depends.txt
wrench/init.lua

index 869dbbd6e7f60865f959f0b905d8b97ad8bb10cd..03a865a358870b39fe05808f9f0302c62a7d9646 100644 (file)
@@ -18,12 +18,19 @@ minetest.register_alias("technic:concrete_post33", "technic:concrete_post3")
 minetest.register_alias("technic:concrete_post34", "technic:concrete_post28")
 minetest.register_alias("technic:concrete_post35", "technic:concrete_post19")
 
+local steel_ingot
+if minetest.get_modpath("technic_worldgen") then
+       steel_ingot = "technic:carbon_steel_ingot"
+else
+       steel_ingot = "default:steel_ingot"
+end
+
 minetest.register_craft({
        output = 'technic:rebar 6',
        recipe = {
-               {'','', 'default:steel_ingot'},
-               {'','default:steel_ingot',''},
-               {'default:steel_ingot', '', ''},
+               {'','', steel_ingot},
+               {'',steel_ingot,''},
+               {steel_ingot, '', ''},
        }
 })
 
diff --git a/notes_on_iron b/notes_on_iron
new file mode 100644 (file)
index 0000000..7facbcf
--- /dev/null
@@ -0,0 +1,68 @@
+Notes on iron and steel
+=======================
+
+Alloying iron with carbon is of huge importance, but in some processes
+the alloying is an implicit side effect rather than the product of
+explicit mixing, so it is a complex area.  In the real world, there is
+a huge variety of kinds of iron and steel, differing in the proportion
+of carbon included and in other elements added to the mix.
+
+The Minetest default mod doesn't distinguish between types of iron and
+steel at all.  This mod introduces multiple types in order to get a bit
+of complexity and flavour.
+
+Leaving aside explicit addition of other elements, the iron/carbon
+spectrum is here represented by three substances: wrought iron,
+carbon steel, and cast iron.  Wrought iron has low carbon content
+(less than 0.25%), resists shattering, and is easily welded, but is
+relatively soft and susceptible to rusting.  It was used for rails,
+gates, chains, wire, pipes, fasteners, and other purposes.  Cast iron
+has high carbon content (2.1% to 4%), is especially hard, and resists
+corrosion, but is relatively brittle, and difficult to work.  It was used
+to build large structures such as bridges, and for cannons, cookware,
+and engine cylinders.  Carbon steel has medium carbon content (0.25%
+to 2.1%), and intermediate properties: moderately hard and also tough,
+somewhat resistant to corrosion.  It is now used for most of the purposes
+previously satisfied by wrought iron and many of those of cast iron,
+but has historically been especially important for its use in swords,
+armour, skyscrapers, large bridges, and machines.
+
+Historically, the first form of iron to be refined was wrought iron,
+produced from ore by a low-temperature furnace process in which the
+ore/iron remains solid and impurities (slag) are progressively removed.
+Cast iron, by contrast, was produced somewhat later by a high-temperature
+process in a blast furnace, in which the metal is melted, and carbon is
+unavoidably incorporated from the furnace's fuel.  (In fact, it's done
+in two stages, first producing pig iron from ore, and then remelting the
+pig iron to cast as cast iron.)  Carbon steel requires a more advanced
+process, in which molten pig iron is processed to remove the carbon,
+and then a controlled amount of carbon is explicitly mixed back in.
+Other processes are possible to refine iron ore and to adjust its
+carbon content.
+
+Unfortunately, Minetest doesn't let us readily distinguish between
+low-temperature and high-temperature processes: in the default game, the
+same furnace is used both to cook food (low temperature) and to cast metal
+ingots (varying high temperatures).  So we can't sensibly have wrought
+iron and cast iron produced by different types of furnace.  Nor can
+furnace recipes discriminate by which kind of fuel is used (and thus
+by the availability of carbon).  The alloy furnace allows for explicit
+alloying, which appropriately represents how carbon steel is made, but
+is not sensible for the other two, and is a relatively advanced process.
+About the only option to make a second iron-processing furnace process
+readily available is to cook multiple times; happily, this bears a slight
+resemblance to the real process with pig iron as an intermediate product.
+
+The default mod's refined iron, which it calls "steel", is identified
+with this mod's wrought iron.  Cooking an iron lump (representing ore)
+initially produces wrought iron; the cooking process here represents a
+low-temperature bloomery process.  Cooking wrought iron then produces
+cast iron; this time the cooking process represents a blast furnace.
+Alloy cooking wrought iron with coal dust (carbon) produces carbon steel;
+this represents the explicit mixing stage of carbon steel production.
+Additionally, alloy cooking carbon steel with coal dust produces cast
+iron, which is logical but not very useful.  Furthermore, to make it
+possible to turn any of the forms of iron into any other, cooking carbon
+steel or cast iron produces wrought iron, in an abbreviated form of the
+bloomery process.  As usual for metals, the same cooking and alloying
+processes can be performed in parallel forms on ingots or dust.
index 0beea30a6877283ae3a9c1653cc8b882cf4d3af9..29199b354775b40f37dda2f287110d8395cef3e6 100644 (file)
@@ -100,36 +100,36 @@ minetest.register_craft({
 minetest.register_craft({
        output = 'technic:copper_coil 1',
        recipe = {
-               {'technic:fine_copper_wire', 'default:steel_ingot', 'technic:fine_copper_wire'},
-               {'default:steel_ingot', '', 'default:steel_ingot'},
-               {'technic:fine_copper_wire', 'default:steel_ingot', 'technic:fine_copper_wire'},
+               {'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
+               {'technic:wrought_iron_ingot', '', 'technic:wrought_iron_ingot'},
+               {'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
        }
 })
 
 minetest.register_craft({
        output = 'technic:motor',
        recipe = {
-               {'default:steel_ingot', 'technic:copper_coil', 'default:steel_ingot'},
-               {'default:steel_ingot', 'technic:copper_coil', 'default:steel_ingot'},
-               {'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
+               {'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
+               {'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
+               {'technic:carbon_steel_ingot', 'default:copper_ingot', 'technic:carbon_steel_ingot'},
        }
 })
 
 minetest.register_craft({
        output = 'technic:lv_transformer',
        recipe = {
-               {'default:iron_lump',   'default:iron_lump', 'default:iron_lump'},
-               {'technic:copper_coil', 'default:iron_lump', 'technic:copper_coil'},
-               {'default:iron_lump',   'default:iron_lump', 'default:iron_lump'},
+               {'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot'},
+               {'technic:copper_coil',        'technic:wrought_iron_ingot', 'technic:copper_coil'},
+               {'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot'},
        }
 })
 
 minetest.register_craft({
        output = 'technic:mv_transformer',
        recipe = {
-               {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
-               {'technic:copper_coil', 'default:steel_ingot', 'technic:copper_coil'},
-               {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
+               {'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot'},
+               {'technic:copper_coil',        'technic:carbon_steel_ingot', 'technic:copper_coil'},
+               {'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot'},
        }
 })
 
index 37fb1d52437a3aee676c861ed785bfa810fd9f42..bc6fd9c4d8a358c8a94f0fda91451068d9bfa866 100644 (file)
@@ -24,6 +24,7 @@ technic.legacy_nodenames = {
        ["technic:mv_battery_box"] = "technic:mv_battery_box0",
        ["technic:generator"]        = "technic:lv_generator",
        ["technic:generator_active"] = "technic:lv_generator_active",
+       ["technic:iron_dust"] = "technic:wrought_iron_dust",
 }
 
 for old, new in pairs(technic.legacy_nodenames) do
index acf6dfb84269bc5b056aa3d99aa16095ba40e333..4844a8356a5820d7b97e62236b2ac787e27b8433 100644 (file)
@@ -135,7 +135,6 @@ Cobble = Pflasterstein:
 Dirt = Erde:
 Leaves = Laub:
 Sandstone = Sandstein:
-Steel = Stahl:
 Stone = Stein:
 Tree = Baumstamm:
 Wooden = Holz:
@@ -148,16 +147,18 @@ Alatro = Alatro
 Arol = Arol
 Brass = Messing
 Bronze = Bronze
+Carbon Steel = Kohlenstoffstahl
+Cast Iron = Gusseisen
 Chromium = Chrom
 Coal = Kohle
 Copper = Kupfer
 Gold = Gold
-Iron = Eisen
 Mithril = Mithril
 Silver = Silber
 Stainless Steel = Edelstahl
 Talinite = Talinite
 Tin = Zinn
+Wrought Iron = Schmiedeeisen
 Zinc = Zink
 
 ## Tools
index 4ac9693606f4c5e95539a75a74d240f49c53427b..a0200bd70e6ff1617d8bf3ab62b16fef89867396 100644 (file)
@@ -121,7 +121,6 @@ Slope Edge = Borde de Rampa
 Slope = Rampa
 Element T = Elemento T
 Cylinder = Cilindro
-Steel = Acero
 Cobble = Adoquines
 Stone = Piedra
 Brick = Ladrillo
@@ -138,16 +137,18 @@ Alatro = Alatro
 Arol = Arol
 Brass = Laton
 Bronze = Bronce
+Carbon Steel = Acero al Carbono
+Cast Iron = Hierro Fundido
 Chromium = Cromo
 Coal = Carbon
 Copper = Cobre
 Gold = Oro
-Iron = Hierro
 Mithril = Mitrilo
 Silver = Plata
 Stainless Steel = Acero Inoxidable
 Talinite = Talinita
 Tin = Estanio
+Wrought Iron = Hierro Forjado
 Zinc = Zinc
 
 ## Tools
index 03d1c5f095f5d4349c44e3b03a6475f7965fdd5c..4b4fbe09d5a324d15feaaf78588c0ba9ba6003c2 100644 (file)
@@ -132,7 +132,6 @@ Cobble = Ciottolato
 Dirt = Terra
 Leaves = Foglie
 Sandstone = Arenaria
-Steel = Acciaio
 Stone = Pietra
 Tree = Albero
 Wooden = Legno
@@ -145,16 +144,18 @@ Alatro = Alatro
 Arol = Arol
 Brass = Ottone
 Bronze = Bronzo
+Carbon Steel = Acciaio al Carbonio
+Cast Iron = Ghisa
 Chromium = Cromo
 Coal = Carbone
 Copper = Rame
 Gold = Oro
-Iron = Ferro
 Mithril = Mithril
 Silver = Argento
 Stainless Steel = Acciaio Inossidabile
 Talinite = Talinite
 Tin = Stagno
+Wrought Iron = Ferro Battuto
 Zinc = Zinco
 
 ## Tools
index 5bda22f980a5e33cb335cd38ff6a850589597beb..17860ee8d08c64ef1904ac53441bbf803d6c6da1 100644 (file)
@@ -135,7 +135,6 @@ Cobble =
 Dirt =
 Leaves =
 Sandstone =
-Steel =
 Stone =
 Tree =
 Wooden =
@@ -148,16 +147,18 @@ Alatro =
 Arol =
 Brass =
 Bronze =
+Carbon Steel =
+Cast Iron =
 Chromium =
 Coal =
 Copper =
 Gold =
-Iron =
 Mithril =
 Silver =
 Stainless Steel =
 Talinite =
 Tin =
+Wrought Iron =
 Zinc =
 
 ## Tools
index 4d6d932a571bd266c86333ed40f05b1328c72b54..fcf0fec14a5ff5877ed09155df29de755624a033 100644 (file)
@@ -3,9 +3,9 @@ local S = technic.getter
 
 minetest.register_craft({
        recipe = {
-               {"default:steelblock", "pipeworks:filter",           "default:steelblock"},
-               {"default:steelblock", "technic:motor",              "default:steelblock"},
-               {"default:steelblock", "technic:diamond_drill_head", "default:steelblock"}},
+               {"technic:carbon_steel_block", "pipeworks:filter",           "technic:carbon_steel_block"},
+               {"technic:carbon_steel_block", "technic:motor",              "technic:carbon_steel_block"},
+               {"technic:carbon_steel_block", "technic:diamond_drill_head", "technic:carbon_steel_block"}},
        output = "technic:quarry",
 })
 
@@ -136,9 +136,9 @@ end
 
 minetest.register_node("technic:quarry", {
        description = S("Quarry"),
-       tiles = {"default_steel_block.png", "default_steel_block.png",
-                "default_steel_block.png", "default_steel_block.png",
-                "default_steel_block.png^default_tool_mesepick.png", "default_steel_block.png"},
+       tiles = {"technic_carbon_steel_block.png", "technic_carbon_steel_block.png",
+                "technic_carbon_steel_block.png", "technic_carbon_steel_block.png",
+                "technic_carbon_steel_block.png^default_tool_mesepick.png", "technic_carbon_steel_block.png"},
        paramtype2 = "facedir",
        groups = {cracky=2, tubedevice=1},
        tube = {
index cb4874a8c6ed9606f6cfb902499d8c176faf099d..ceea77a935202c78fc574475f0279bd610409c67 100644 (file)
@@ -4,9 +4,9 @@
 minetest.register_craft({
        output = 'technic:solar_array_hv 1',
        recipe = {
-               {'technic:solar_array_mv', 'technic:solar_array_mv',  'technic:solar_array_mv'},
-               {'default:steel_ingot',    'technic:hv_transformer',  'default:steel_ingot'},
-               {'',                       'technic:hv_cable0',       ''},
+               {'technic:solar_array_mv',     'technic:solar_array_mv', 'technic:solar_array_mv'},
+               {'technic:carbon_steel_ingot', 'technic:hv_transformer', 'technic:carbon_steel_ingot'},
+               {'',                           'technic:hv_cable0',      ''},
        }
 })
 
index 0637f48d8bd0dd28b6839852ada39b98617b23a0..b24e1923d27bb93b907aa0e94263bafd14cadbac 100644 (file)
@@ -4,9 +4,9 @@
 minetest.register_craft({
        output = 'technic:lv_alloy_furnace',
        recipe = {
-               {'default:brick',       'default:brick',        'default:brick'},
-               {'default:brick',       '',                     'default:brick'},
-               {'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
+               {'default:brick',           'default:brick',        'default:brick'},
+               {'default:brick',           '',                     'default:brick'},
+               {'technic:cast_iron_ingot', 'default:copper_ingot', 'technic:cast_iron_ingot'},
        }
 })
 
index cba2ef6f6368abcbe3a61870f1ffb8a5a4b21383..e21a66a96107826499b494b75898867aaeb2a0ad 100644 (file)
@@ -2,9 +2,9 @@
 minetest.register_craft({
        output = 'technic:lv_battery_box0',
        recipe = {
-               {'technic:battery',     'group:wood',           'technic:battery'},
-               {'technic:battery',     'default:copper_ingot', 'technic:battery'},
-               {'default:steel_ingot', 'default:steel_ingot',  'default:steel_ingot'},
+               {'technic:battery',         'group:wood',              'technic:battery'},
+               {'technic:battery',         'default:copper_ingot',    'technic:battery'},
+               {'technic:cast_iron_ingot', 'technic:cast_iron_ingot', 'technic:cast_iron_ingot'},
        }
 })
 
index e466dad17a6c777fa2845b9260de18120fe7138d..baee2c9dff2c5abc508d0f96bd5733e33562e7d8 100644 (file)
@@ -229,8 +229,8 @@ minetest.register_craft({
        output = 'technic:cnc',
        recipe = {
                {'default:glass',              'technic:diamond_drill_head', 'default:glass'},
-               {'technic:control_logic_unit', 'technic:motor',              'default:steel_ingot'},
-               {'default:steel_ingot',        'default:copper_ingot',       'default:steel_ingot'},         
+               {'technic:control_logic_unit', 'technic:motor',              'technic:carbon_steel_ingot'},
+               {'technic:carbon_steel_ingot', 'default:copper_ingot',       'technic:carbon_steel_ingot'},         
        },
 })
 
index a12307fe09d211dc611c0d259a181bf0906aee9c..4835e4947fddca17667986bbc1488a8948d4b4f9 100644 (file)
@@ -58,12 +58,13 @@ technic.cnc.register_all("default:tree",
                 {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
                 {"default_tree.png"},
                 S("Tree"))
--- STEEL
---------
+
+-- WROUGHT IRON
+---------------
 technic.cnc.register_all("default:steelblock",
                 {cracky=1, level=2, not_in_creative_inventory=1},
-                {"default_steel_block.png"},
-                S("Steel"))
+                {"technic_wrought_iron_block.png"},
+                S("Wrought Iron"))
 
 -- Bronze
 --------
index a67fca1fb0248cf2ed23259433921d7d962ac4f2..8bb1562e9de222a84347a5fec72ece6f78bc9ce2 100644 (file)
@@ -5,9 +5,9 @@
 minetest.register_craft({
        output = 'technic:electric_furnace',
        recipe = {
-               {'default:cobble',      'default:cobble',        'default:cobble'},
-               {'default:cobble',      '',                      'default:cobble'},
-               {'default:steel_ingot', 'moreores:copper_ingot', 'default:steel_ingot'},
+               {'default:cobble',          'default:cobble',        'default:cobble'},
+               {'default:cobble',          '',                      'default:cobble'},
+               {'technic:cast_iron_ingot', 'moreores:copper_ingot', 'technic:cast_iron_ingot'},
        }
 })
 
index 63f64f1d356f7ece585e994d90c85ed86ac82221..4d2c3b3ba6706f691a603d7f8bf7bf381c925db8 100644 (file)
@@ -8,9 +8,9 @@
 minetest.register_craft({
        output = 'technic:solar_array_lv 1',
        recipe = {
-               {'technic:solar_panel', 'technic:solar_panel',    'technic:solar_panel'},
-               {'default:steel_ingot', 'technic:lv_transformer', 'default:steel_ingot'},
-               {'',                    'technic:lv_cable0',      ''},
+               {'technic:solar_panel',        'technic:solar_panel',    'technic:solar_panel'},
+               {'technic:carbon_steel_ingot', 'technic:lv_transformer', 'technic:carbon_steel_ingot'},
+               {'',                           'technic:lv_cable0',      ''},
        }
 })
 
index d49f609b388f485341333e5cba7adfb3f1cbd5b3..95b359dee117004fe9d43e508d8b4adfb8137946 100644 (file)
@@ -29,7 +29,7 @@ minetest.register_craft({
        output = 'technic:solar_panel',
        recipe = {
                {'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer'},
-               {'default:steel_ingot',         'technic:lv_cable0',           'default:steel_ingot'},
+               {'technic:wrought_iron_ingot',  'technic:lv_cable0',           'technic:wrought_iron_ingot'},
 
        }
 })
index d939fb921b98236f3b9cd38cd67c8af134329024..227d8ee251f1de91e688894fa933088049449084 100644 (file)
@@ -2,9 +2,9 @@
 minetest.register_craft({
        output = 'technic:solar_array_mv 1',
        recipe = {
-               {'technic:solar_array_lv', 'technic:solar_array_lv', 'technic:solar_array_lv'},
-               {'default:steel_ingot',    'technic:mv_transformer', 'default:steel_ingot'},
-               {'',                       'technic:mv_cable0',      ''},
+               {'technic:solar_array_lv',     'technic:solar_array_lv', 'technic:solar_array_lv'},
+               {'technic:carbon_steel_ingot', 'technic:mv_transformer', 'technic:carbon_steel_ingot'},
+               {'',                           'technic:mv_cable0',      ''},
        }
 })
 
index 32fa5c3546399e4e2e27723903e652cb2709a85c..6930228d7b1b81dfa12568fc86796d54711f00c8 100644 (file)
@@ -4,25 +4,25 @@ local S = technic.getter
 minetest.register_craft({
        output = 'technic:wind_mill_frame 5',
        recipe = {
-               {'default:steel_ingot', '',                    'default:steel_ingot'},
-               {'',                    'default:steel_ingot', ''},
-               {'default:steel_ingot', '',                    'default:steel_ingot'},
+               {'technic:carbon_steel_ingot', '',                           'technic:carbon_steel_ingot'},
+               {'',                           'technic:carbon_steel_ingot', ''},
+               {'technic:carbon_steel_ingot', '',                           'technic:carbon_steel_ingot'},
        }
 })
 
 minetest.register_craft({
        output = 'technic:wind_mill',
        recipe = {
-               {'',                    'default:steel_ingot', ''},
-               {'default:steel_ingot', 'technic:motor',       'default:steel_ingot'},
-               {'',                    'default:steelblock',  ''},
+               {'',                           'technic:carbon_steel_ingot', ''},
+               {'technic:carbon_steel_ingot', 'technic:motor',              'technic:carbon_steel_ingot'},
+               {'',                           'technic:carbon_steel_block', ''},
        }
 })
 
 minetest.register_node("technic:wind_mill_frame", {
        description = S("Wind Mill Frame"),
        drawtype = "glasslike_framed",
-       tiles = {"default_steel_block.png", "default_glass.png"},
+       tiles = {"technic_carbon_steel_block.png", "default_glass.png"},
        sunlight_propagates = true,
        groups = {cracky=3},
        sounds = default.node_sound_stone_defaults(),
@@ -31,7 +31,7 @@ minetest.register_node("technic:wind_mill_frame", {
 
 minetest.register_node("technic:wind_mill", {
        description = S("Wind Mill"),
-       tiles = {"default_steel_block.png"},
+       tiles = {"technic_carbon_steel_block.png"},
        paramtype2 = "facedir",
        groups = {cracky=1},
        sounds = default.node_sound_stone_defaults(),
index ebf5eabdc416ee9e5a5b2fc417bea5afb57ee4a4..ac1cd05e4e948c35c8f2dd9d7cc78fe631022065 100644 (file)
@@ -45,6 +45,36 @@ technic.register_alloy_recipe = function(metal1, count1, metal2, count2, result,
        end
 end
 
+minetest.after(0.01, function ()
+       for _, recipe in pairs(technic.alloy_recipes) do
+               local in1 = recipe.input[1]
+               local in2 = recipe.input[2]
+               local in1n = in1.name
+               local in2n = in2.name
+               while minetest.registered_aliases[in1n] do
+                       in1n = minetest.registered_aliases[in1n]
+               end
+               while minetest.registered_aliases[in2n] do
+                       in2n = minetest.registered_aliases[in2n]
+               end
+               if in1n > in2n then
+                       local temp = in1
+                       in1 = in2
+                       in2 = temp
+                       temp = in1n
+                       in1n = in2n
+                       in2n = temp
+               end
+               technic.alloy_recipes[in1n.." "..in2n] = {
+                       input = {
+                               { name = in1n, count = in1.count },
+                               { name = in2n, count = in2.count },
+                       },
+                       output = recipe.output,
+               }
+       end
+end)
+
 -- Retrieve a recipe given the input metals.
 function technic.get_alloy_recipe(stack1, stack2)
        -- Sort the stacks alphebetically
@@ -65,8 +95,12 @@ end
 
 technic.register_alloy_recipe("technic:copper_dust",   3, "technic:tin_dust",       1, "technic:bronze_dust",           4)
 technic.register_alloy_recipe("default:copper_ingot",  3, "moreores:tin_ingot",     1, "moreores:bronze_ingot",         4)
-technic.register_alloy_recipe("technic:iron_dust",     3, "technic:chromium_dust",  1, "technic:stainless_steel_dust",  4)
-technic.register_alloy_recipe("default:steel_ingot",   3, "technic:chromium_ingot", 1, "technic:stainless_steel_ingot", 4)
+technic.register_alloy_recipe("technic:wrought_iron_dust", 1, "technic:coal_dust",  1, "technic:carbon_steel_dust",     1)
+technic.register_alloy_recipe("technic:wrought_iron_ingot", 1, "technic:coal_dust", 1, "technic:carbon_steel_ingot",    1)
+technic.register_alloy_recipe("technic:carbon_steel_dust", 1, "technic:coal_dust",  1, "technic:cast_iron_dust",        1)
+technic.register_alloy_recipe("technic:carbon_steel_ingot", 1, "technic:coal_dust", 1, "technic:cast_iron_ingot",       1)
+technic.register_alloy_recipe("technic:carbon_steel_dust", 3, "technic:chromium_dust", 1, "technic:stainless_steel_dust", 4)
+technic.register_alloy_recipe("technic:carbon_steel_ingot", 3, "technic:chromium_ingot", 1, "technic:stainless_steel_ingot", 4)
 technic.register_alloy_recipe("technic:copper_dust",   2, "technic:zinc_dust",      1, "technic:brass_dust",            3)
 technic.register_alloy_recipe("default:copper_ingot",  2, "technic:zinc_ingot",     1, "technic:brass_ingot",           3)
 technic.register_alloy_recipe("default:sand",          2, "technic:coal_dust",      2, "technic:silicon_wafer",         1)
index d81d42108d19fabbb5a72c614902b158d786aa1e..d0352d7fb1e8d4110ec1026879dbb0e3241d4d78 100644 (file)
@@ -24,6 +24,16 @@ function technic.register_grinder_recipe(data)
        end
 end
 
+minetest.after(0.01, function ()
+       for ingredient, recipe in pairs(technic.grinder_recipes) do
+               ingredient = minetest.registered_aliases[ingredient]
+               while ingredient do
+                       technic.grinder_recipes[ingredient] = recipe
+                       ingredient = minetest.registered_aliases[ingredient]
+               end
+       end
+end)
+
 -- Receive an ItemStack of result by an ItemStack input
 function technic.get_grinder_recipe(itemstack)
        return technic.grinder_recipes[itemstack:get_name()]
@@ -40,8 +50,7 @@ local recipes = {
        {"default:gold_ingot",      "technic:gold_dust 1"},
        {"default:gold_lump",       "technic:gold_dust 2"},
        {"default:gravel",          "default:dirt"},
-       {"default:iron_lump",       "technic:iron_dust 2"},
-       {"default:steel_ingot",     "technic:iron_dust 1"},
+       {"default:iron_lump",       "technic:wrought_iron_dust 2"},
        {"default:stone",           "default:sand"},
        {"gloopores:alatro_lump",   "technic:alatro_dust 2"},
        {"gloopores:kalite_lump",   "technic:kalite_dust 2"},
@@ -54,8 +63,11 @@ local recipes = {
        {"moreores:silver_lump",    "technic:silver_dust 2"},
        {"moreores:tin_ingot",      "technic:tin_dust 1"},
        {"moreores:tin_lump",       "technic:tin_dust 2"},
+       {"technic:cast_iron_ingot", "technic:cast_iron_dust 1"},
        {"technic:chromium_ingot",  "technic:chromium_dust 1"},
        {"technic:chromium_lump",   "technic:chromium_dust 2"},
+       {"technic:wrought_iron_ingot", "technic:wrought_iron_dust 1"},
+       {"technic:carbon_steel_ingot", "technic:carbon_steel_dust 1"},
        {"technic:zinc_ingot",      "technic:zinc_dust 1"},
        {"technic:zinc_lump",       "technic:zinc_dust 2"},
        {"technic:brass_ingot",     "technic:brass_dust 1"},
@@ -92,16 +104,18 @@ register_dust("Alatro",          "glooptest:alatro_ingot")
 register_dust("Arol",            "glooptest:arol_ingot")
 register_dust("Brass",           "technic:brass_ingot")
 register_dust("Bronze",          "default:bronze_ingot")
+register_dust("Carbon Steel",    "technic:carbon_steel_ingot")
+register_dust("Cast Iron",       "technic:cast_iron_ingot")
 register_dust("Chromium",        "technic:chromium_ingot")
 register_dust("Coal",            nil)
 register_dust("Copper",          "default:copper_ingot")
 register_dust("Gold",            "default:gold_ingot")
-register_dust("Iron",            "default:steel_ingot")
 register_dust("Mithril",         "moreores:mithril_ingot")
 register_dust("Silver",          "moreores:silver_ingot")
 register_dust("Stainless Steel", "technic:stainless_steel_ingot")
 register_dust("Talinite",        "glooptest:talinite_ingot")
 register_dust("Tin",             "moreores:tin_ingot")
+register_dust("Wrought Iron",    "technic:wrought_iron_ingot")
 register_dust("Zinc",            "technic:zinc_ingot")
 
 minetest.register_craft({
index f7a0f44d915a4240f250c13d705986e601ab65f5..a6c0c99cbbb538bcf306bbc8f238bff52abf596f 100644 (file)
@@ -35,9 +35,9 @@ local S = technic.getter
 minetest.register_craft({
        output = "technic:switching_station",
        recipe = {
-               {"default:steel_ingot",  "technic:lv_transformer", "default:steel_ingot"},
-               {"default:copper_ingot", "technic:lv_cable0",      "default:copper_ingot"},
-               {"default:steel_ingot",  "technic:lv_cable0",      "default:steel_ingot"}
+               {"technic:cast_iron_ingot", "technic:lv_transformer", "technic:cast_iron_ingot"},
+               {"default:copper_ingot",    "technic:lv_cable0",      "default:copper_ingot"},
+               {"technic:cast_iron_ingot", "technic:lv_cable0",      "technic:cast_iron_ingot"}
        }
 })
 
diff --git a/technic/textures/technic_carbon_steel_dust.png b/technic/textures/technic_carbon_steel_dust.png
new file mode 100644 (file)
index 0000000..0fa8a17
Binary files /dev/null and b/technic/textures/technic_carbon_steel_dust.png differ
diff --git a/technic/textures/technic_cast_iron_dust.png b/technic/textures/technic_cast_iron_dust.png
new file mode 100644 (file)
index 0000000..b5690ac
Binary files /dev/null and b/technic/textures/technic_cast_iron_dust.png differ
diff --git a/technic/textures/technic_iron_dust.png b/technic/textures/technic_iron_dust.png
deleted file mode 100644 (file)
index ad23c62..0000000
Binary files a/technic/textures/technic_iron_dust.png and /dev/null differ
diff --git a/technic/textures/technic_wrought_iron_dust.png b/technic/textures/technic_wrought_iron_dust.png
new file mode 100644 (file)
index 0000000..ad23c62
Binary files /dev/null and b/technic/textures/technic_wrought_iron_dust.png differ
diff --git a/technic/textures/technicx32/technic_carbon_steel_dust.png b/technic/textures/technicx32/technic_carbon_steel_dust.png
new file mode 100644 (file)
index 0000000..0bf350f
Binary files /dev/null and b/technic/textures/technicx32/technic_carbon_steel_dust.png differ
diff --git a/technic/textures/technicx32/technic_cast_iron_dust.png b/technic/textures/technicx32/technic_cast_iron_dust.png
new file mode 100644 (file)
index 0000000..f355094
Binary files /dev/null and b/technic/textures/technicx32/technic_cast_iron_dust.png differ
diff --git a/technic/textures/technicx32/technic_iron_dust.png b/technic/textures/technicx32/technic_iron_dust.png
deleted file mode 100644 (file)
index aaecd2b..0000000
Binary files a/technic/textures/technicx32/technic_iron_dust.png and /dev/null differ
diff --git a/technic/textures/technicx32/technic_wrought_iron_dust.png b/technic/textures/technicx32/technic_wrought_iron_dust.png
new file mode 100644 (file)
index 0000000..d890e73
Binary files /dev/null and b/technic/textures/technicx32/technic_wrought_iron_dust.png differ
index 737443e7b913c339f5c6f063d30ea8e7e4e3d8e8..f1a821b09ed5d070c6e3ea4988ae21d86a515e4b 100644 (file)
@@ -7,8 +7,8 @@ minetest.register_craft({
        output = 'technic:water_can 1',
        recipe = {
                {'technic:zinc_ingot', 'technic:rubber','technic:zinc_ingot'},
-               {'default:steel_ingot', '', 'default:steel_ingot'},
-               {'technic:zinc_ingot', 'default:steel_ingot', 'technic:zinc_ingot'},
+               {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
+               {'technic:zinc_ingot', 'technic:carbon_steel_ingot', 'technic:zinc_ingot'},
        }
 })
 
index 03286f436475e829de9fa569735d790d88f351fa..8f32a5a1a4c58eaaa857bee1c61733bce690dddc 100644 (file)
@@ -16,25 +16,25 @@ local S = technic.getter
 minetest.register_craft({
        output = 'technic:laser_mk1',
        recipe = {
-               {'default:diamond', 'default:steel_ingot', 'technic:red_energy_crystal'},
-               {'',                'default:steel_ingot', 'default:steel_ingot'},
-               {'',                '',                    'default:copper_ingot'},
+               {'default:diamond', 'technic:carbon_steel_ingot', 'technic:red_energy_crystal'},
+               {'',                'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot'},
+               {'',                '',                           'default:copper_ingot'},
        }
 })
 minetest.register_craft({
        output = 'technic:laser_mk2',
        recipe = {
-               {'default:diamond', 'default:steel_ingot', 'technic:laser_mk1'},
-               {'',                'default:steel_ingot', 'technic:green_energy_crystal'},
-               {'',                '',                    'default:copper_ingot'},
+               {'default:diamond', 'technic:carbon_steel_ingot', 'technic:laser_mk1'},
+               {'',                'technic:carbon_steel_ingot', 'technic:green_energy_crystal'},
+               {'',                '',                           'default:copper_ingot'},
        }
 })
 minetest.register_craft({
        output = 'technic:laser_mk3',
        recipe = {
-               {'default:diamond', 'default:steel_ingot', 'technic:laser_mk2'},
-               {'',                'default:steel_ingot', 'technic:blue_energy_crystal'},
-               {'',                '',                    'default:copper_ingot'},
+               {'default:diamond', 'technic:carbon_steel_ingot', 'technic:laser_mk2'},
+               {'',                'technic:carbon_steel_ingot', 'technic:blue_energy_crystal'},
+               {'',                '',                           'default:copper_ingot'},
        }
 })
 
index a2a5a281e2d18b7c07d045711575790b0255ad62..21f056334b3bbe93a94321cb7340320bed61bb9c 100644 (file)
@@ -19,7 +19,7 @@ minetest.register_craft({
 minetest.register_craft({
        output = 'technic:copper_locked_chest 1',
        recipe = {
-               {'default:steel_ingot'},
+               {'technic:wrought_iron_ingot'},
                {'technic:copper_chest'},
        }
 })
index 8009e56054708de6f1884c71602a786c81410979..fc0492e060fdf225af0bfc978ac82f69e176e333 100644 (file)
@@ -1,5 +1,6 @@
 default
 technic
+technic_worldgen
 moreores
 pipeworks
 intllib?
index d173fdebe21e02741eb4b84cd87c25e77be00634..941834de8ab26e8d06ec7351a86a78fd667b28dc 100644 (file)
@@ -20,7 +20,7 @@ minetest.register_craft({
 minetest.register_craft({
        output = 'technic:gold_locked_chest',
        recipe = {
-               {'default:steel_ingot'},
+               {'technic:wrought_iron_ingot'},
                {'technic:gold_chest'},
        }
 })
index c21fcfb284b75404c08c8090cc2ad366492dbe55..a1f5c6358992899315b1f0a5903f36ed9649e5c3 100644 (file)
@@ -2,25 +2,25 @@
 minetest.register_craft({
        output = 'technic:iron_chest 1',
        recipe = {
-               {'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
-               {'default:steel_ingot','default:chest','default:steel_ingot'},
-               {'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
+               {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
+               {'technic:cast_iron_ingot','default:chest','technic:cast_iron_ingot'},
+               {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
        }
 })
 
 minetest.register_craft({
        output = 'technic:iron_locked_chest 1',
        recipe = {
-               {'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
-               {'default:steel_ingot','default:chest_locked','default:steel_ingot'},
-               {'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
+               {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
+               {'technic:cast_iron_ingot','default:chest_locked','technic:cast_iron_ingot'},
+               {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
        }
 })
 
 minetest.register_craft({
        output = 'technic:iron_locked_chest 1',
        recipe = {
-               {'default:steel_ingot'},
+               {'technic:wrought_iron_ingot'},
                {'technic:iron_chest'},
        }
 })
index b39fc9d18e3b5936e30868eaafd8cd1a1c22073f..f5aa986434c3a4a5738fc8d185ffeed5ee5343b8 100644 (file)
@@ -19,7 +19,7 @@ minetest.register_craft({
 minetest.register_craft({
        output = 'technic:mithril_locked_chest 1',
        recipe = {
-               {'default:steel_ingot'},
+               {'technic:wrought_iron_ingot'},
                {'technic:mithril_chest'},
        }
 })
index 9c3453af3a0c9d8128da13b93992cfa715ae3002..75b33f829bf1138c5f3f196c033b0140d8100861 100644 (file)
@@ -19,7 +19,7 @@ minetest.register_craft({
 minetest.register_craft({
        output = 'technic:silver_locked_chest',
        recipe = {
-               {'default:steel_ingot'},
+               {'technic:wrought_iron_ingot'},
                {'technic:silver_chest'},
        }
 })
index fc593a6c663255e0b2e367f51e0f78a0e5345b67..e2d5236762189a86ba90c00e259e8e3ac88ed866 100644 (file)
@@ -34,6 +34,23 @@ minetest.register_craftitem(":technic:brass_ingot", {
        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:uranium_block", "technic:uranium")
 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 @@ minetest.register_craft({
        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)
index 60f3862deed846527d0ce8c5da8bfc1dbdec6022..1dacb41b28968cac35f7bdb4f40a329b1f97ed68 100644 (file)
@@ -9,7 +9,11 @@ Chromium Ingot = Chrombarren
 Zinc Lump = Zinkklumpen
 Zinc Ingot = Zinkbarren
 Brass Ingot = Messingbarren
+Wrought Iron Ingot = Schmiedeeisenbarren
+Cast Iron Ingot = Gusseisenbarren
+Carbon Steel Ingot = Kohlenstoffstahlbarren
 Stainless Steel Ingot = Edelstahlbarren
+Iron = Eisen
 
 ## nodes.lua
 Uranium Ore = Uranerz
@@ -21,8 +25,12 @@ Marble Bricks = Marmorziegel
 Uranium Block = Uranblock
 Chromium Block = Chromblock
 Zinc Block = Zinkblock
+Wrought Iron Block = Schmiedeeisenblock
+Cast Iron Block = Gusseisenblock
+Carbon Steel Block = Kohlenstoffstahlblock
 Stainless Steel Block = Edelstahlblock
 Brass Block = Messingblock
+Wrought Iron = Schmiedeeisen
 
 ## rubber.lua
 Rubber Tree Sapling = Gummibaumsetzling
index f1da697cd6327a925ea2a451315330893dee0643..a4a6e4d2aa9a64a2429ac57e878f92eba00529a1 100644 (file)
@@ -8,7 +8,11 @@ Chromium Ingot =
 Zinc Lump = 
 Zinc Ingot = 
 Brass Ingot = 
+Wrought Iron Ingot =
+Cast Iron Ingot =
+Carbon Steel Ingot =
 Stainless Steel Ingot = 
+Iron =
 
 ###nodes.lua
 Uranium Ore = 
@@ -20,8 +24,12 @@ Marble Bricks =
 Uranium Block = 
 Chromium Block = 
 Zinc Block = 
+Wrought Iron Block =
+Cast Iron Block =
+Carbon Steel Block =
 Stainless Steel Block = 
 Brass Block = 
+Wrought Iron =
 
 ###rubber.lua
 Rubber Tree Sapling = 
index 07ec4af55d0eb82e1f64a858f140dd0a3ffc5b9b..12637f7b6656e39890ce458ae59f909c9ea74282 100644 (file)
@@ -76,6 +76,29 @@ minetest.register_node(":technic:zinc_block", {
        sounds = default.node_sound_stone_defaults()
 })
 
+minetest.register_alias("technic:wrought_iron_block", "default:steelblock")
+
+minetest.override_item("default:steelblock", {
+       description = S("Wrought Iron Block"),
+       tiles = { "technic_wrought_iron_block.png" },
+})
+
+minetest.register_node(":technic:cast_iron_block", {
+       description = S("Cast Iron Block"),
+       tiles = { "technic_cast_iron_block.png" },
+       is_ground_content = true,
+       groups = {cracky=1, level=2},
+       sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node(":technic:carbon_steel_block", {
+       description = S("Carbon Steel Block"),
+       tiles = { "technic_carbon_steel_block.png" },
+       is_ground_content = true,
+       groups = {cracky=1, level=2},
+       sounds = default.node_sound_stone_defaults()
+})
+
 minetest.register_node(":technic:stainless_steel_block", {
        description = S("Stainless Steel Block"),
        tiles = { "technic_stainless_steel_block.png" },
@@ -104,3 +127,37 @@ minetest.register_alias("technic:diamond_block", "default:diamondblock")
 minetest.register_alias("technic:diamond", "default:diamond")
 minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond")
 
+local function for_each_registered_node(action)
+       local already_reg = {}
+       for k, _ in pairs(minetest.registered_nodes) do
+               table.insert(already_reg, k)
+       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
+
+for_each_registered_node(function(node_name)
+       local node_def = minetest.registered_nodes[node_name]
+       if node_name ~= "default:steelblock" and string.find(node_name, "steelblock") and string.find(node_def.description, "Steel") then
+               minetest.override_item(node_name, { description = string.gsub(node_def.description, "Steel", S("Wrought Iron")) })
+       end
+       if node_def.tiles or node_def.tile_images then
+               local tn = node_def.tiles and "tiles" or "tile_images"
+               local tl = {}
+               local ca = false
+               for i, t in ipairs(node_def[tn]) do
+                       if type(t) == "string" and t == "default_steel_block.png" then
+                               ca = true
+                               t = "technic_wrought_iron_block.png"
+                       end
+                       table.insert(tl, t)
+               end
+               if ca then minetest.override_item(node_name, { [tn] = tl }) end
+       end
+end)
diff --git a/technic_worldgen/textures/technic_carbon_steel_block.png b/technic_worldgen/textures/technic_carbon_steel_block.png
new file mode 100644 (file)
index 0000000..f3cfdc1
Binary files /dev/null and b/technic_worldgen/textures/technic_carbon_steel_block.png differ
diff --git a/technic_worldgen/textures/technic_carbon_steel_ingot.png b/technic_worldgen/textures/technic_carbon_steel_ingot.png
new file mode 100644 (file)
index 0000000..0d45066
Binary files /dev/null and b/technic_worldgen/textures/technic_carbon_steel_ingot.png differ
diff --git a/technic_worldgen/textures/technic_cast_iron_block.png b/technic_worldgen/textures/technic_cast_iron_block.png
new file mode 100644 (file)
index 0000000..2df61e5
Binary files /dev/null and b/technic_worldgen/textures/technic_cast_iron_block.png differ
diff --git a/technic_worldgen/textures/technic_cast_iron_ingot.png b/technic_worldgen/textures/technic_cast_iron_ingot.png
new file mode 100644 (file)
index 0000000..692fff8
Binary files /dev/null and b/technic_worldgen/textures/technic_cast_iron_ingot.png differ
diff --git a/technic_worldgen/textures/technic_wrought_iron_block.png b/technic_worldgen/textures/technic_wrought_iron_block.png
new file mode 100644 (file)
index 0000000..cf6c961
Binary files /dev/null and b/technic_worldgen/textures/technic_wrought_iron_block.png differ
diff --git a/technic_worldgen/textures/technic_wrought_iron_ingot.png b/technic_worldgen/textures/technic_wrought_iron_ingot.png
new file mode 100644 (file)
index 0000000..b7e6d1e
Binary files /dev/null and b/technic_worldgen/textures/technic_wrought_iron_ingot.png differ
index 09059177fa2b2c5801d1b09514fff76419496376..4d126c60b8c88c9503d3eed696178b14ad2853ca 100644 (file)
@@ -1,5 +1,6 @@
 default
 technic
 technic_chests
+technic_worldgen
 intllib?
 
index 500f8ac09e045ab88dfe5146b9fcf476d3648be8..f0a0e008a53205b8fcd02543bb5c190df84c7286 100644 (file)
@@ -165,8 +165,8 @@ minetest.register_tool("wrench:wrench", {
 minetest.register_craft({
        output = "wrench:wrench",
        recipe = {
-               {"default:steel_ingot", "",                    "default:steel_ingot"},
-               {"",                    "default:steel_ingot", ""},
-               {"",                    "default:steel_ingot", ""},
+               {"technic:carbon_steel_ingot", "",                           "technic:carbon_steel_ingot"},
+               {"",                           "technic:carbon_steel_ingot", ""},
+               {"",                           "technic:carbon_steel_ingot", ""},
        },
 })