split default iron/steel into three metals

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.
This commit is contained in:
Zefram 2014-05-16 22:02:49 +01:00 committed by RealBadAngel
parent ecb53e9717
commit 68b7bcc28e
49 changed files with 374 additions and 95 deletions

@ -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_post34", "technic:concrete_post28")
minetest.register_alias("technic:concrete_post35", "technic:concrete_post19") 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({ minetest.register_craft({
output = 'technic:rebar 6', output = 'technic:rebar 6',
recipe = { recipe = {
{'','', 'default:steel_ingot'}, {'','', steel_ingot},
{'','default:steel_ingot',''}, {'',steel_ingot,''},
{'default:steel_ingot', '', ''}, {steel_ingot, '', ''},
} }
}) })

68
notes_on_iron Normal file

@ -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.

@ -100,36 +100,36 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:copper_coil 1', output = 'technic:copper_coil 1',
recipe = { recipe = {
{'technic:fine_copper_wire', 'default:steel_ingot', 'technic:fine_copper_wire'}, {'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
{'default:steel_ingot', '', 'default:steel_ingot'}, {'technic:wrought_iron_ingot', '', 'technic:wrought_iron_ingot'},
{'technic:fine_copper_wire', 'default:steel_ingot', 'technic:fine_copper_wire'}, {'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:motor', output = 'technic:motor',
recipe = { recipe = {
{'default:steel_ingot', 'technic:copper_coil', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
{'default:steel_ingot', 'technic:copper_coil', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'default:copper_ingot', 'technic:carbon_steel_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:lv_transformer', output = 'technic:lv_transformer',
recipe = { recipe = {
{'default:iron_lump', 'default:iron_lump', 'default:iron_lump'}, {'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot'},
{'technic:copper_coil', 'default:iron_lump', 'technic:copper_coil'}, {'technic:copper_coil', 'technic:wrought_iron_ingot', 'technic:copper_coil'},
{'default:iron_lump', 'default:iron_lump', 'default:iron_lump'}, {'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:mv_transformer', output = 'technic:mv_transformer',
recipe = { recipe = {
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot'},
{'technic:copper_coil', 'default:steel_ingot', 'technic:copper_coil'}, {'technic:copper_coil', 'technic:carbon_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'},
} }
}) })

@ -24,6 +24,7 @@ technic.legacy_nodenames = {
["technic:mv_battery_box"] = "technic:mv_battery_box0", ["technic:mv_battery_box"] = "technic:mv_battery_box0",
["technic:generator"] = "technic:lv_generator", ["technic:generator"] = "technic:lv_generator",
["technic:generator_active"] = "technic:lv_generator_active", ["technic:generator_active"] = "technic:lv_generator_active",
["technic:iron_dust"] = "technic:wrought_iron_dust",
} }
for old, new in pairs(technic.legacy_nodenames) do for old, new in pairs(technic.legacy_nodenames) do

@ -135,7 +135,6 @@ Cobble = Pflasterstein:
Dirt = Erde: Dirt = Erde:
Leaves = Laub: Leaves = Laub:
Sandstone = Sandstein: Sandstone = Sandstein:
Steel = Stahl:
Stone = Stein: Stone = Stein:
Tree = Baumstamm: Tree = Baumstamm:
Wooden = Holz: Wooden = Holz:
@ -148,16 +147,18 @@ Alatro = Alatro
Arol = Arol Arol = Arol
Brass = Messing Brass = Messing
Bronze = Bronze Bronze = Bronze
Carbon Steel = Kohlenstoffstahl
Cast Iron = Gusseisen
Chromium = Chrom Chromium = Chrom
Coal = Kohle Coal = Kohle
Copper = Kupfer Copper = Kupfer
Gold = Gold Gold = Gold
Iron = Eisen
Mithril = Mithril Mithril = Mithril
Silver = Silber Silver = Silber
Stainless Steel = Edelstahl Stainless Steel = Edelstahl
Talinite = Talinite Talinite = Talinite
Tin = Zinn Tin = Zinn
Wrought Iron = Schmiedeeisen
Zinc = Zink Zinc = Zink
## Tools ## Tools

@ -121,7 +121,6 @@ Slope Edge = Borde de Rampa
Slope = Rampa Slope = Rampa
Element T = Elemento T Element T = Elemento T
Cylinder = Cilindro Cylinder = Cilindro
Steel = Acero
Cobble = Adoquines Cobble = Adoquines
Stone = Piedra Stone = Piedra
Brick = Ladrillo Brick = Ladrillo
@ -138,16 +137,18 @@ Alatro = Alatro
Arol = Arol Arol = Arol
Brass = Laton Brass = Laton
Bronze = Bronce Bronze = Bronce
Carbon Steel = Acero al Carbono
Cast Iron = Hierro Fundido
Chromium = Cromo Chromium = Cromo
Coal = Carbon Coal = Carbon
Copper = Cobre Copper = Cobre
Gold = Oro Gold = Oro
Iron = Hierro
Mithril = Mitrilo Mithril = Mitrilo
Silver = Plata Silver = Plata
Stainless Steel = Acero Inoxidable Stainless Steel = Acero Inoxidable
Talinite = Talinita Talinite = Talinita
Tin = Estanio Tin = Estanio
Wrought Iron = Hierro Forjado
Zinc = Zinc Zinc = Zinc
## Tools ## Tools

@ -132,7 +132,6 @@ Cobble = Ciottolato
Dirt = Terra Dirt = Terra
Leaves = Foglie Leaves = Foglie
Sandstone = Arenaria Sandstone = Arenaria
Steel = Acciaio
Stone = Pietra Stone = Pietra
Tree = Albero Tree = Albero
Wooden = Legno Wooden = Legno
@ -145,16 +144,18 @@ Alatro = Alatro
Arol = Arol Arol = Arol
Brass = Ottone Brass = Ottone
Bronze = Bronzo Bronze = Bronzo
Carbon Steel = Acciaio al Carbonio
Cast Iron = Ghisa
Chromium = Cromo Chromium = Cromo
Coal = Carbone Coal = Carbone
Copper = Rame Copper = Rame
Gold = Oro Gold = Oro
Iron = Ferro
Mithril = Mithril Mithril = Mithril
Silver = Argento Silver = Argento
Stainless Steel = Acciaio Inossidabile Stainless Steel = Acciaio Inossidabile
Talinite = Talinite Talinite = Talinite
Tin = Stagno Tin = Stagno
Wrought Iron = Ferro Battuto
Zinc = Zinco Zinc = Zinco
## Tools ## Tools

@ -135,7 +135,6 @@ Cobble =
Dirt = Dirt =
Leaves = Leaves =
Sandstone = Sandstone =
Steel =
Stone = Stone =
Tree = Tree =
Wooden = Wooden =
@ -148,16 +147,18 @@ Alatro =
Arol = Arol =
Brass = Brass =
Bronze = Bronze =
Carbon Steel =
Cast Iron =
Chromium = Chromium =
Coal = Coal =
Copper = Copper =
Gold = Gold =
Iron =
Mithril = Mithril =
Silver = Silver =
Stainless Steel = Stainless Steel =
Talinite = Talinite =
Tin = Tin =
Wrought Iron =
Zinc = Zinc =
## Tools ## Tools

@ -3,9 +3,9 @@ local S = technic.getter
minetest.register_craft({ minetest.register_craft({
recipe = { recipe = {
{"default:steelblock", "pipeworks:filter", "default:steelblock"}, {"technic:carbon_steel_block", "pipeworks:filter", "technic:carbon_steel_block"},
{"default:steelblock", "technic:motor", "default:steelblock"}, {"technic:carbon_steel_block", "technic:motor", "technic:carbon_steel_block"},
{"default:steelblock", "technic:diamond_drill_head", "default:steelblock"}}, {"technic:carbon_steel_block", "technic:diamond_drill_head", "technic:carbon_steel_block"}},
output = "technic:quarry", output = "technic:quarry",
}) })
@ -136,9 +136,9 @@ end
minetest.register_node("technic:quarry", { minetest.register_node("technic:quarry", {
description = S("Quarry"), description = S("Quarry"),
tiles = {"default_steel_block.png", "default_steel_block.png", tiles = {"technic_carbon_steel_block.png", "technic_carbon_steel_block.png",
"default_steel_block.png", "default_steel_block.png", "technic_carbon_steel_block.png", "technic_carbon_steel_block.png",
"default_steel_block.png^default_tool_mesepick.png", "default_steel_block.png"}, "technic_carbon_steel_block.png^default_tool_mesepick.png", "technic_carbon_steel_block.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=2, tubedevice=1}, groups = {cracky=2, tubedevice=1},
tube = { tube = {

@ -5,7 +5,7 @@ minetest.register_craft({
output = 'technic:solar_array_hv 1', output = 'technic:solar_array_hv 1',
recipe = { recipe = {
{'technic:solar_array_mv', 'technic:solar_array_mv', 'technic:solar_array_mv'}, {'technic:solar_array_mv', 'technic:solar_array_mv', 'technic:solar_array_mv'},
{'default:steel_ingot', 'technic:hv_transformer', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:hv_transformer', 'technic:carbon_steel_ingot'},
{'', 'technic:hv_cable0', ''}, {'', 'technic:hv_cable0', ''},
} }
}) })

@ -6,7 +6,7 @@ minetest.register_craft({
recipe = { recipe = {
{'default:brick', 'default:brick', 'default:brick'}, {'default:brick', 'default:brick', 'default:brick'},
{'default:brick', '', 'default:brick'}, {'default:brick', '', 'default:brick'},
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, {'technic:cast_iron_ingot', 'default:copper_ingot', 'technic:cast_iron_ingot'},
} }
}) })

@ -4,7 +4,7 @@ minetest.register_craft({
recipe = { recipe = {
{'technic:battery', 'group:wood', 'technic:battery'}, {'technic:battery', 'group:wood', 'technic:battery'},
{'technic:battery', 'default:copper_ingot', 'technic:battery'}, {'technic:battery', 'default:copper_ingot', 'technic:battery'},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, {'technic:cast_iron_ingot', 'technic:cast_iron_ingot', 'technic:cast_iron_ingot'},
} }
}) })

@ -229,8 +229,8 @@ minetest.register_craft({
output = 'technic:cnc', output = 'technic:cnc',
recipe = { recipe = {
{'default:glass', 'technic:diamond_drill_head', 'default:glass'}, {'default:glass', 'technic:diamond_drill_head', 'default:glass'},
{'technic:control_logic_unit', 'technic:motor', 'default:steel_ingot'}, {'technic:control_logic_unit', 'technic:motor', 'technic:carbon_steel_ingot'},
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'default:copper_ingot', 'technic:carbon_steel_ingot'},
}, },
}) })

@ -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}, {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
{"default_tree.png"}, {"default_tree.png"},
S("Tree")) S("Tree"))
-- STEEL
-------- -- WROUGHT IRON
---------------
technic.cnc.register_all("default:steelblock", technic.cnc.register_all("default:steelblock",
{cracky=1, level=2, not_in_creative_inventory=1}, {cracky=1, level=2, not_in_creative_inventory=1},
{"default_steel_block.png"}, {"technic_wrought_iron_block.png"},
S("Steel")) S("Wrought Iron"))
-- Bronze -- Bronze
-------- --------

@ -7,7 +7,7 @@ minetest.register_craft({
recipe = { recipe = {
{'default:cobble', 'default:cobble', 'default:cobble'}, {'default:cobble', 'default:cobble', 'default:cobble'},
{'default:cobble', '', 'default:cobble'}, {'default:cobble', '', 'default:cobble'},
{'default:steel_ingot', 'moreores:copper_ingot', 'default:steel_ingot'}, {'technic:cast_iron_ingot', 'moreores:copper_ingot', 'technic:cast_iron_ingot'},
} }
}) })

@ -9,7 +9,7 @@ minetest.register_craft({
output = 'technic:solar_array_lv 1', output = 'technic:solar_array_lv 1',
recipe = { recipe = {
{'technic:solar_panel', 'technic:solar_panel', 'technic:solar_panel'}, {'technic:solar_panel', 'technic:solar_panel', 'technic:solar_panel'},
{'default:steel_ingot', 'technic:lv_transformer', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:lv_transformer', 'technic:carbon_steel_ingot'},
{'', 'technic:lv_cable0', ''}, {'', 'technic:lv_cable0', ''},
} }
}) })

@ -29,7 +29,7 @@ minetest.register_craft({
output = 'technic:solar_panel', output = 'technic:solar_panel',
recipe = { recipe = {
{'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer'}, {'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'},
} }
}) })

@ -3,7 +3,7 @@ minetest.register_craft({
output = 'technic:solar_array_mv 1', output = 'technic:solar_array_mv 1',
recipe = { recipe = {
{'technic:solar_array_lv', 'technic:solar_array_lv', 'technic:solar_array_lv'}, {'technic:solar_array_lv', 'technic:solar_array_lv', 'technic:solar_array_lv'},
{'default:steel_ingot', 'technic:mv_transformer', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:mv_transformer', 'technic:carbon_steel_ingot'},
{'', 'technic:mv_cable0', ''}, {'', 'technic:mv_cable0', ''},
} }
}) })

@ -4,25 +4,25 @@ local S = technic.getter
minetest.register_craft({ minetest.register_craft({
output = 'technic:wind_mill_frame 5', output = 'technic:wind_mill_frame 5',
recipe = { recipe = {
{'default:steel_ingot', '', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
{'', 'default:steel_ingot', ''}, {'', 'technic:carbon_steel_ingot', ''},
{'default:steel_ingot', '', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:wind_mill', output = 'technic:wind_mill',
recipe = { recipe = {
{'', 'default:steel_ingot', ''}, {'', 'technic:carbon_steel_ingot', ''},
{'default:steel_ingot', 'technic:motor', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:motor', 'technic:carbon_steel_ingot'},
{'', 'default:steelblock', ''}, {'', 'technic:carbon_steel_block', ''},
} }
}) })
minetest.register_node("technic:wind_mill_frame", { minetest.register_node("technic:wind_mill_frame", {
description = S("Wind Mill Frame"), description = S("Wind Mill Frame"),
drawtype = "glasslike_framed", drawtype = "glasslike_framed",
tiles = {"default_steel_block.png", "default_glass.png"}, tiles = {"technic_carbon_steel_block.png", "default_glass.png"},
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -31,7 +31,7 @@ minetest.register_node("technic:wind_mill_frame", {
minetest.register_node("technic:wind_mill", { minetest.register_node("technic:wind_mill", {
description = S("Wind Mill"), description = S("Wind Mill"),
tiles = {"default_steel_block.png"}, tiles = {"technic_carbon_steel_block.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1}, groups = {cracky=1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),

@ -45,6 +45,36 @@ technic.register_alloy_recipe = function(metal1, count1, metal2, count2, result,
end end
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. -- Retrieve a recipe given the input metals.
function technic.get_alloy_recipe(stack1, stack2) function technic.get_alloy_recipe(stack1, stack2)
-- Sort the stacks alphebetically -- 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("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("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("technic:wrought_iron_dust", 1, "technic:coal_dust", 1, "technic:carbon_steel_dust", 1)
technic.register_alloy_recipe("default:steel_ingot", 3, "technic:chromium_ingot", 1, "technic:stainless_steel_ingot", 4) 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("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: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) technic.register_alloy_recipe("default:sand", 2, "technic:coal_dust", 2, "technic:silicon_wafer", 1)

@ -24,6 +24,16 @@ function technic.register_grinder_recipe(data)
end end
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 -- Receive an ItemStack of result by an ItemStack input
function technic.get_grinder_recipe(itemstack) function technic.get_grinder_recipe(itemstack)
return technic.grinder_recipes[itemstack:get_name()] return technic.grinder_recipes[itemstack:get_name()]
@ -40,8 +50,7 @@ local recipes = {
{"default:gold_ingot", "technic:gold_dust 1"}, {"default:gold_ingot", "technic:gold_dust 1"},
{"default:gold_lump", "technic:gold_dust 2"}, {"default:gold_lump", "technic:gold_dust 2"},
{"default:gravel", "default:dirt"}, {"default:gravel", "default:dirt"},
{"default:iron_lump", "technic:iron_dust 2"}, {"default:iron_lump", "technic:wrought_iron_dust 2"},
{"default:steel_ingot", "technic:iron_dust 1"},
{"default:stone", "default:sand"}, {"default:stone", "default:sand"},
{"gloopores:alatro_lump", "technic:alatro_dust 2"}, {"gloopores:alatro_lump", "technic:alatro_dust 2"},
{"gloopores:kalite_lump", "technic:kalite_dust 2"}, {"gloopores:kalite_lump", "technic:kalite_dust 2"},
@ -54,8 +63,11 @@ local recipes = {
{"moreores:silver_lump", "technic:silver_dust 2"}, {"moreores:silver_lump", "technic:silver_dust 2"},
{"moreores:tin_ingot", "technic:tin_dust 1"}, {"moreores:tin_ingot", "technic:tin_dust 1"},
{"moreores:tin_lump", "technic:tin_dust 2"}, {"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_ingot", "technic:chromium_dust 1"},
{"technic:chromium_lump", "technic:chromium_dust 2"}, {"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_ingot", "technic:zinc_dust 1"},
{"technic:zinc_lump", "technic:zinc_dust 2"}, {"technic:zinc_lump", "technic:zinc_dust 2"},
{"technic:brass_ingot", "technic:brass_dust 1"}, {"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("Arol", "glooptest:arol_ingot")
register_dust("Brass", "technic:brass_ingot") register_dust("Brass", "technic:brass_ingot")
register_dust("Bronze", "default:bronze_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("Chromium", "technic:chromium_ingot")
register_dust("Coal", nil) register_dust("Coal", nil)
register_dust("Copper", "default:copper_ingot") register_dust("Copper", "default:copper_ingot")
register_dust("Gold", "default:gold_ingot") register_dust("Gold", "default:gold_ingot")
register_dust("Iron", "default:steel_ingot")
register_dust("Mithril", "moreores:mithril_ingot") register_dust("Mithril", "moreores:mithril_ingot")
register_dust("Silver", "moreores:silver_ingot") register_dust("Silver", "moreores:silver_ingot")
register_dust("Stainless Steel", "technic:stainless_steel_ingot") register_dust("Stainless Steel", "technic:stainless_steel_ingot")
register_dust("Talinite", "glooptest:talinite_ingot") register_dust("Talinite", "glooptest:talinite_ingot")
register_dust("Tin", "moreores:tin_ingot") register_dust("Tin", "moreores:tin_ingot")
register_dust("Wrought Iron", "technic:wrought_iron_ingot")
register_dust("Zinc", "technic:zinc_ingot") register_dust("Zinc", "technic:zinc_ingot")
minetest.register_craft({ minetest.register_craft({

@ -35,9 +35,9 @@ local S = technic.getter
minetest.register_craft({ minetest.register_craft({
output = "technic:switching_station", output = "technic:switching_station",
recipe = { recipe = {
{"default:steel_ingot", "technic:lv_transformer", "default:steel_ingot"}, {"technic:cast_iron_ingot", "technic:lv_transformer", "technic:cast_iron_ingot"},
{"default:copper_ingot", "technic:lv_cable0", "default:copper_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_cable0", "technic:cast_iron_ingot"}
} }
}) })

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Before

Width:  |  Height:  |  Size: 448 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -7,8 +7,8 @@ minetest.register_craft({
output = 'technic:water_can 1', output = 'technic:water_can 1',
recipe = { recipe = {
{'technic:zinc_ingot', 'technic:rubber','technic:zinc_ingot'}, {'technic:zinc_ingot', 'technic:rubber','technic:zinc_ingot'},
{'default:steel_ingot', '', 'default:steel_ingot'}, {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
{'technic:zinc_ingot', 'default:steel_ingot', 'technic:zinc_ingot'}, {'technic:zinc_ingot', 'technic:carbon_steel_ingot', 'technic:zinc_ingot'},
} }
}) })

@ -16,24 +16,24 @@ local S = technic.getter
minetest.register_craft({ minetest.register_craft({
output = 'technic:laser_mk1', output = 'technic:laser_mk1',
recipe = { recipe = {
{'default:diamond', 'default:steel_ingot', 'technic:red_energy_crystal'}, {'default:diamond', 'technic:carbon_steel_ingot', 'technic:red_energy_crystal'},
{'', 'default:steel_ingot', 'default:steel_ingot'}, {'', 'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot'},
{'', '', 'default:copper_ingot'}, {'', '', 'default:copper_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:laser_mk2', output = 'technic:laser_mk2',
recipe = { recipe = {
{'default:diamond', 'default:steel_ingot', 'technic:laser_mk1'}, {'default:diamond', 'technic:carbon_steel_ingot', 'technic:laser_mk1'},
{'', 'default:steel_ingot', 'technic:green_energy_crystal'}, {'', 'technic:carbon_steel_ingot', 'technic:green_energy_crystal'},
{'', '', 'default:copper_ingot'}, {'', '', 'default:copper_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:laser_mk3', output = 'technic:laser_mk3',
recipe = { recipe = {
{'default:diamond', 'default:steel_ingot', 'technic:laser_mk2'}, {'default:diamond', 'technic:carbon_steel_ingot', 'technic:laser_mk2'},
{'', 'default:steel_ingot', 'technic:blue_energy_crystal'}, {'', 'technic:carbon_steel_ingot', 'technic:blue_energy_crystal'},
{'', '', 'default:copper_ingot'}, {'', '', 'default:copper_ingot'},
} }
}) })

@ -19,7 +19,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:copper_locked_chest 1', output = 'technic:copper_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot'}, {'technic:wrought_iron_ingot'},
{'technic:copper_chest'}, {'technic:copper_chest'},
} }
}) })

@ -1,5 +1,6 @@
default default
technic technic
technic_worldgen
moreores moreores
pipeworks pipeworks
intllib? intllib?

@ -20,7 +20,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:gold_locked_chest', output = 'technic:gold_locked_chest',
recipe = { recipe = {
{'default:steel_ingot'}, {'technic:wrought_iron_ingot'},
{'technic:gold_chest'}, {'technic:gold_chest'},
} }
}) })

@ -2,25 +2,25 @@
minetest.register_craft({ minetest.register_craft({
output = 'technic:iron_chest 1', output = 'technic:iron_chest 1',
recipe = { recipe = {
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'}, {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
{'default:steel_ingot','default:chest','default:steel_ingot'}, {'technic:cast_iron_ingot','default:chest','technic:cast_iron_ingot'},
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'}, {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:iron_locked_chest 1', output = 'technic:iron_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'}, {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
{'default:steel_ingot','default:chest_locked','default:steel_ingot'}, {'technic:cast_iron_ingot','default:chest_locked','technic:cast_iron_ingot'},
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'}, {'technic:cast_iron_ingot','technic:cast_iron_ingot','technic:cast_iron_ingot'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'technic:iron_locked_chest 1', output = 'technic:iron_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot'}, {'technic:wrought_iron_ingot'},
{'technic:iron_chest'}, {'technic:iron_chest'},
} }
}) })

@ -19,7 +19,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:mithril_locked_chest 1', output = 'technic:mithril_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot'}, {'technic:wrought_iron_ingot'},
{'technic:mithril_chest'}, {'technic:mithril_chest'},
} }
}) })

@ -19,7 +19,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:silver_locked_chest', output = 'technic:silver_locked_chest',
recipe = { recipe = {
{'default:steel_ingot'}, {'technic:wrought_iron_ingot'},
{'technic:silver_chest'}, {'technic:silver_chest'},
} }
}) })

@ -34,6 +34,23 @@ minetest.register_craftitem(":technic:brass_ingot", {
inventory_image = "technic_brass_ingot.png", 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", { minetest.register_craftitem(":technic:stainless_steel_ingot", {
description = S("Stainless Steel Ingot"), description = S("Stainless Steel Ingot"),
inventory_image = "technic_stainless_steel_ingot.png", 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:chromium_block", "technic:chromium_ingot")
register_block("technic:zinc_block", "technic:zinc_ingot") register_block("technic:zinc_block", "technic:zinc_ingot")
register_block("technic:brass_block", "technic:brass_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") register_block("technic:stainless_steel_block", "technic:stainless_steel_ingot")
minetest.register_craft({ minetest.register_craft({
@ -75,3 +94,59 @@ minetest.register_craft({
output = "technic:chromium_ingot", 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)

@ -9,7 +9,11 @@ Chromium Ingot = Chrombarren
Zinc Lump = Zinkklumpen Zinc Lump = Zinkklumpen
Zinc Ingot = Zinkbarren Zinc Ingot = Zinkbarren
Brass Ingot = Messingbarren Brass Ingot = Messingbarren
Wrought Iron Ingot = Schmiedeeisenbarren
Cast Iron Ingot = Gusseisenbarren
Carbon Steel Ingot = Kohlenstoffstahlbarren
Stainless Steel Ingot = Edelstahlbarren Stainless Steel Ingot = Edelstahlbarren
Iron = Eisen
## nodes.lua ## nodes.lua
Uranium Ore = Uranerz Uranium Ore = Uranerz
@ -21,8 +25,12 @@ Marble Bricks = Marmorziegel
Uranium Block = Uranblock Uranium Block = Uranblock
Chromium Block = Chromblock Chromium Block = Chromblock
Zinc Block = Zinkblock Zinc Block = Zinkblock
Wrought Iron Block = Schmiedeeisenblock
Cast Iron Block = Gusseisenblock
Carbon Steel Block = Kohlenstoffstahlblock
Stainless Steel Block = Edelstahlblock Stainless Steel Block = Edelstahlblock
Brass Block = Messingblock Brass Block = Messingblock
Wrought Iron = Schmiedeeisen
## rubber.lua ## rubber.lua
Rubber Tree Sapling = Gummibaumsetzling Rubber Tree Sapling = Gummibaumsetzling

@ -8,7 +8,11 @@ Chromium Ingot =
Zinc Lump = Zinc Lump =
Zinc Ingot = Zinc Ingot =
Brass Ingot = Brass Ingot =
Wrought Iron Ingot =
Cast Iron Ingot =
Carbon Steel Ingot =
Stainless Steel Ingot = Stainless Steel Ingot =
Iron =
###nodes.lua ###nodes.lua
Uranium Ore = Uranium Ore =
@ -20,8 +24,12 @@ Marble Bricks =
Uranium Block = Uranium Block =
Chromium Block = Chromium Block =
Zinc Block = Zinc Block =
Wrought Iron Block =
Cast Iron Block =
Carbon Steel Block =
Stainless Steel Block = Stainless Steel Block =
Brass Block = Brass Block =
Wrought Iron =
###rubber.lua ###rubber.lua
Rubber Tree Sapling = Rubber Tree Sapling =

@ -76,6 +76,29 @@ minetest.register_node(":technic:zinc_block", {
sounds = default.node_sound_stone_defaults() 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", { minetest.register_node(":technic:stainless_steel_block", {
description = S("Stainless Steel Block"), description = S("Stainless Steel Block"),
tiles = { "technic_stainless_steel_block.png" }, 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:diamond", "default:diamond")
minetest.register_alias("technic:mineral_diamond", "default:stone_with_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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

@ -1,5 +1,6 @@
default default
technic technic
technic_chests technic_chests
technic_worldgen
intllib? intllib?

@ -165,8 +165,8 @@ minetest.register_tool("wrench:wrench", {
minetest.register_craft({ minetest.register_craft({
output = "wrench:wrench", output = "wrench:wrench",
recipe = { recipe = {
{"default:steel_ingot", "", "default:steel_ingot"}, {"technic:carbon_steel_ingot", "", "technic:carbon_steel_ingot"},
{"", "default:steel_ingot", ""}, {"", "technic:carbon_steel_ingot", ""},
{"", "default:steel_ingot", ""}, {"", "technic:carbon_steel_ingot", ""},
}, },
}) })