diff --git a/concrete/init.lua b/concrete/init.lua index 869dbbd..03a865a 100644 --- a/concrete/init.lua +++ b/concrete/init.lua @@ -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 index 0000000..7facbcf --- /dev/null +++ b/notes_on_iron @@ -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. diff --git a/technic/crafts.lua b/technic/crafts.lua index 0beea30..29199b3 100644 --- a/technic/crafts.lua +++ b/technic/crafts.lua @@ -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'}, } }) diff --git a/technic/legacy.lua b/technic/legacy.lua index 37fb1d5..bc6fd9c 100644 --- a/technic/legacy.lua +++ b/technic/legacy.lua @@ -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 diff --git a/technic/locale/de.txt b/technic/locale/de.txt index acf6dfb..4844a83 100644 --- a/technic/locale/de.txt +++ b/technic/locale/de.txt @@ -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 diff --git a/technic/locale/es.txt b/technic/locale/es.txt index 4ac9693..a0200bd 100644 --- a/technic/locale/es.txt +++ b/technic/locale/es.txt @@ -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 diff --git a/technic/locale/it.txt b/technic/locale/it.txt index 03d1c5f..4b4fbe0 100644 --- a/technic/locale/it.txt +++ b/technic/locale/it.txt @@ -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 diff --git a/technic/locale/template.txt b/technic/locale/template.txt index 5bda22f..17860ee 100644 --- a/technic/locale/template.txt +++ b/technic/locale/template.txt @@ -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 diff --git a/technic/machines/HV/quarry.lua b/technic/machines/HV/quarry.lua index 4d6d932..fcf0fec 100644 --- a/technic/machines/HV/quarry.lua +++ b/technic/machines/HV/quarry.lua @@ -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 = { diff --git a/technic/machines/HV/solar_array.lua b/technic/machines/HV/solar_array.lua index cb4874a..ceea77a 100644 --- a/technic/machines/HV/solar_array.lua +++ b/technic/machines/HV/solar_array.lua @@ -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', ''}, } }) diff --git a/technic/machines/LV/alloy_furnace.lua b/technic/machines/LV/alloy_furnace.lua index 0637f48..b24e192 100644 --- a/technic/machines/LV/alloy_furnace.lua +++ b/technic/machines/LV/alloy_furnace.lua @@ -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'}, } }) diff --git a/technic/machines/LV/battery_box.lua b/technic/machines/LV/battery_box.lua index cba2ef6..e21a66a 100644 --- a/technic/machines/LV/battery_box.lua +++ b/technic/machines/LV/battery_box.lua @@ -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'}, } }) diff --git a/technic/machines/LV/cnc.lua b/technic/machines/LV/cnc.lua index e466dad..baee2c9 100644 --- a/technic/machines/LV/cnc.lua +++ b/technic/machines/LV/cnc.lua @@ -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'}, }, }) diff --git a/technic/machines/LV/cnc_nodes.lua b/technic/machines/LV/cnc_nodes.lua index a12307f..4835e49 100644 --- a/technic/machines/LV/cnc_nodes.lua +++ b/technic/machines/LV/cnc_nodes.lua @@ -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 -------- diff --git a/technic/machines/LV/electric_furnace.lua b/technic/machines/LV/electric_furnace.lua index a67fca1..8bb1562 100644 --- a/technic/machines/LV/electric_furnace.lua +++ b/technic/machines/LV/electric_furnace.lua @@ -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'}, } }) diff --git a/technic/machines/LV/solar_array.lua b/technic/machines/LV/solar_array.lua index 63f64f1..4d2c3b3 100644 --- a/technic/machines/LV/solar_array.lua +++ b/technic/machines/LV/solar_array.lua @@ -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', ''}, } }) diff --git a/technic/machines/LV/solar_panel.lua b/technic/machines/LV/solar_panel.lua index d49f609..95b359d 100644 --- a/technic/machines/LV/solar_panel.lua +++ b/technic/machines/LV/solar_panel.lua @@ -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'}, } }) diff --git a/technic/machines/MV/solar_array.lua b/technic/machines/MV/solar_array.lua index d939fb9..227d8ee 100644 --- a/technic/machines/MV/solar_array.lua +++ b/technic/machines/MV/solar_array.lua @@ -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', ''}, } }) diff --git a/technic/machines/MV/wind_mill.lua b/technic/machines/MV/wind_mill.lua index 32fa5c3..6930228 100644 --- a/technic/machines/MV/wind_mill.lua +++ b/technic/machines/MV/wind_mill.lua @@ -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(), diff --git a/technic/machines/register/alloy_furnace.lua b/technic/machines/register/alloy_furnace.lua index ebf5eab..ac1cd05 100644 --- a/technic/machines/register/alloy_furnace.lua +++ b/technic/machines/register/alloy_furnace.lua @@ -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) diff --git a/technic/machines/register/grinder_recipes.lua b/technic/machines/register/grinder_recipes.lua index d81d421..d0352d7 100644 --- a/technic/machines/register/grinder_recipes.lua +++ b/technic/machines/register/grinder_recipes.lua @@ -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({ diff --git a/technic/machines/switching_station.lua b/technic/machines/switching_station.lua index f7a0f44..a6c0c99 100644 --- a/technic/machines/switching_station.lua +++ b/technic/machines/switching_station.lua @@ -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 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 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_wrought_iron_dust.png similarity index 100% rename from technic/textures/technic_iron_dust.png rename to technic/textures/technic_wrought_iron_dust.png diff --git a/technic/textures/technicx32/technic_carbon_steel_dust.png b/technic/textures/technicx32/technic_carbon_steel_dust.png new file mode 100644 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 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 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 index 0000000..d890e73 Binary files /dev/null and b/technic/textures/technicx32/technic_wrought_iron_dust.png differ diff --git a/technic/tools/cans.lua b/technic/tools/cans.lua index 737443e..f1a821b 100644 --- a/technic/tools/cans.lua +++ b/technic/tools/cans.lua @@ -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'}, } }) diff --git a/technic/tools/mining_lasers.lua b/technic/tools/mining_lasers.lua index 03286f4..8f32a5a 100644 --- a/technic/tools/mining_lasers.lua +++ b/technic/tools/mining_lasers.lua @@ -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'}, } }) diff --git a/technic_chests/copper_chest.lua b/technic_chests/copper_chest.lua index a2a5a28..21f0563 100644 --- a/technic_chests/copper_chest.lua +++ b/technic_chests/copper_chest.lua @@ -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'}, } }) diff --git a/technic_chests/depends.txt b/technic_chests/depends.txt index 8009e56..fc0492e 100644 --- a/technic_chests/depends.txt +++ b/technic_chests/depends.txt @@ -1,5 +1,6 @@ default technic +technic_worldgen moreores pipeworks intllib? diff --git a/technic_chests/gold_chest.lua b/technic_chests/gold_chest.lua index d173fde..941834d 100644 --- a/technic_chests/gold_chest.lua +++ b/technic_chests/gold_chest.lua @@ -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'}, } }) diff --git a/technic_chests/iron_chest.lua b/technic_chests/iron_chest.lua index c21fcfb..a1f5c63 100644 --- a/technic_chests/iron_chest.lua +++ b/technic_chests/iron_chest.lua @@ -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'}, } }) diff --git a/technic_chests/mithril_chest.lua b/technic_chests/mithril_chest.lua index b39fc9d..f5aa986 100644 --- a/technic_chests/mithril_chest.lua +++ b/technic_chests/mithril_chest.lua @@ -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'}, } }) diff --git a/technic_chests/silver_chest.lua b/technic_chests/silver_chest.lua index 9c3453a..75b33f8 100644 --- a/technic_chests/silver_chest.lua +++ b/technic_chests/silver_chest.lua @@ -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'}, } }) diff --git a/technic_worldgen/crafts.lua b/technic_worldgen/crafts.lua index fc593a6..e2d5236 100644 --- a/technic_worldgen/crafts.lua +++ b/technic_worldgen/crafts.lua @@ -34,6 +34,23 @@ 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) diff --git a/technic_worldgen/locale/de.txt b/technic_worldgen/locale/de.txt index 60f3862..1dacb41 100644 --- a/technic_worldgen/locale/de.txt +++ b/technic_worldgen/locale/de.txt @@ -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 diff --git a/technic_worldgen/locale/template.txt b/technic_worldgen/locale/template.txt index f1da697..a4a6e4d 100644 --- a/technic_worldgen/locale/template.txt +++ b/technic_worldgen/locale/template.txt @@ -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 = diff --git a/technic_worldgen/nodes.lua b/technic_worldgen/nodes.lua index 07ec4af..12637f7 100644 --- a/technic_worldgen/nodes.lua +++ b/technic_worldgen/nodes.lua @@ -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 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 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 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 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 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 index 0000000..b7e6d1e Binary files /dev/null and b/technic_worldgen/textures/technic_wrought_iron_ingot.png differ diff --git a/wrench/depends.txt b/wrench/depends.txt index 0905917..4d126c6 100644 --- a/wrench/depends.txt +++ b/wrench/depends.txt @@ -1,5 +1,6 @@ default technic technic_chests +technic_worldgen intllib? diff --git a/wrench/init.lua b/wrench/init.lua index 500f8ac..f0a0e00 100644 --- a/wrench/init.lua +++ b/wrench/init.lua @@ -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", ""}, }, })