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.
1 files deleted
12 files added
35 files modified
1 files renamed
| | |
| | | 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, '', ''}, |
| | | } |
| | | }) |
| | | |
New file |
| | |
| | | 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. |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | | |
| | |
| | | ["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 |
| | |
| | | Dirt = Erde: |
| | | Leaves = Laub: |
| | | Sandstone = Sandstein: |
| | | Steel = Stahl: |
| | | Stone = Stein: |
| | | Tree = Baumstamm: |
| | | Wooden = Holz: |
| | |
| | | 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 |
| | |
| | | Slope = Rampa |
| | | Element T = Elemento T |
| | | Cylinder = Cilindro |
| | | Steel = Acero |
| | | Cobble = Adoquines |
| | | Stone = Piedra |
| | | Brick = Ladrillo |
| | |
| | | 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 |
| | |
| | | Dirt = Terra |
| | | Leaves = Foglie |
| | | Sandstone = Arenaria |
| | | Steel = Acciaio |
| | | Stone = Pietra |
| | | Tree = Albero |
| | | Wooden = Legno |
| | |
| | | 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 |
| | |
| | | Dirt = |
| | | Leaves = |
| | | Sandstone = |
| | | Steel = |
| | | Stone = |
| | | Tree = |
| | | Wooden = |
| | |
| | | Arol = |
| | | Brass = |
| | | Bronze = |
| | | Carbon Steel = |
| | | Cast Iron = |
| | | Chromium = |
| | | Coal = |
| | | Copper = |
| | | Gold = |
| | | Iron = |
| | | Mithril = |
| | | Silver = |
| | | Stainless Steel = |
| | | Talinite = |
| | | Tin = |
| | | Wrought Iron = |
| | | Zinc = |
| | | |
| | | ## Tools |
| | |
| | | |
| | | 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", |
| | | }) |
| | | |
| | |
| | | |
| | | 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 = { |
| | |
| | | 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', ''}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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'}, |
| | | }, |
| | | }) |
| | | |
| | |
| | | {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 |
| | | -------- |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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', ''}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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'}, |
| | | |
| | | } |
| | | }) |
| | |
| | | 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', ''}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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(), |
| | |
| | | |
| | | 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(), |
| | |
| | | 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 |
| | |
| | | |
| | | 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) |
| | |
| | | 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()] |
| | |
| | | {"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"}, |
| | |
| | | {"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"}, |
| | |
| | | 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({ |
| | |
| | | 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"} |
| | | } |
| | | }) |
| | | |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | | |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | | |
| | |
| | | minetest.register_craft({ |
| | | output = 'technic:copper_locked_chest 1', |
| | | recipe = { |
| | | {'default:steel_ingot'}, |
| | | {'technic:wrought_iron_ingot'}, |
| | | {'technic:copper_chest'}, |
| | | } |
| | | }) |
| | |
| | | default |
| | | technic |
| | | technic_worldgen |
| | | moreores |
| | | pipeworks |
| | | intllib? |
| | |
| | | minetest.register_craft({ |
| | | output = 'technic:gold_locked_chest', |
| | | recipe = { |
| | | {'default:steel_ingot'}, |
| | | {'technic:wrought_iron_ingot'}, |
| | | {'technic:gold_chest'}, |
| | | } |
| | | }) |
| | |
| | | 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'}, |
| | | } |
| | | }) |
| | |
| | | minetest.register_craft({ |
| | | output = 'technic:mithril_locked_chest 1', |
| | | recipe = { |
| | | {'default:steel_ingot'}, |
| | | {'technic:wrought_iron_ingot'}, |
| | | {'technic:mithril_chest'}, |
| | | } |
| | | }) |
| | |
| | | minetest.register_craft({ |
| | | output = 'technic:silver_locked_chest', |
| | | recipe = { |
| | | {'default:steel_ingot'}, |
| | | {'technic:wrought_iron_ingot'}, |
| | | {'technic:silver_chest'}, |
| | | } |
| | | }) |
| | |
| | | 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", |
| | |
| | | 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({ |
| | |
| | | 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) |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | Zinc Lump = |
| | | Zinc Ingot = |
| | | Brass Ingot = |
| | | Wrought Iron Ingot = |
| | | Cast Iron Ingot = |
| | | Carbon Steel Ingot = |
| | | Stainless Steel Ingot = |
| | | Iron = |
| | | |
| | | ###nodes.lua |
| | | Uranium Ore = |
| | |
| | | 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 = |
| | |
| | | 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" }, |
| | |
| | | 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) |
| | |
| | | default |
| | | technic |
| | | technic_chests |
| | | technic_worldgen |
| | | intllib? |
| | | |
| | |
| | | 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", ""}, |
| | | }, |
| | | }) |