From dd71facb60d878e59b8ff932401917f737e93d7a Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Sun, 25 May 2014 15:29:35 -0400 Subject: [PATCH] Updated several mods: technic unified_inventory item_tweaks maptools moreblocks moreores random_buildings/cottages xban2 --- mods/item_tweaks/init.lua | 2 +- mods/item_tweaks/item_drop.lua | 10 -- mods/maptools/README.txt | 25 ++--- mods/maptools/init.lua | 23 +++- .../textures/maptools_grass_side_12.png | Bin 0 -> 561 bytes .../textures/maptools_grass_side_4.png | Bin 0 -> 294 bytes .../textures/maptools_grass_side_8.png | Bin 0 -> 466 bytes .../maptools/textures/maptools_superapple.png | Bin 126 -> 231 bytes mods/moreblocks/README.txt | 6 +- mods/moreores/README.txt | 24 ++-- mods/random_buildings/README.md | 2 + mods/random_buildings/cottages/locale/de.txt | 9 ++ .../cottages/locale/template.txt | 8 ++ mods/random_buildings/cottages/nodes_roof.lua | 43 ++++++++ .../cottages/textures/cottages_slate.png | Bin 0 -> 8609 bytes mods/technic/concrete/init.lua | 13 ++- mods/technic/notes_on_iron | 68 ++++++++++++ mods/technic/technic/crafts.lua | 24 ++-- mods/technic/technic/legacy.lua | 1 + mods/technic/technic/locale/de.txt | 6 +- mods/technic/technic/locale/es.txt | 6 +- mods/technic/technic/locale/it.txt | 6 +- mods/technic/technic/locale/template.txt | 6 +- .../technic/machines/HV/battery_box.lua | 2 + mods/technic/technic/machines/HV/quarry.lua | 67 +++++------ .../technic/machines/HV/solar_array.lua | 6 +- .../technic/machines/LV/alloy_furnace.lua | 6 +- .../technic/machines/LV/battery_box.lua | 6 +- mods/technic/technic/machines/LV/cnc.lua | 4 +- .../technic/technic/machines/LV/cnc_nodes.lua | 9 +- .../technic/machines/LV/electric_furnace.lua | 6 +- .../technic/machines/LV/solar_array.lua | 6 +- .../technic/machines/LV/solar_panel.lua | 2 +- .../technic/machines/MV/battery_box.lua | 2 + .../technic/machines/MV/solar_array.lua | 6 +- .../technic/technic/machines/MV/wind_mill.lua | 16 +-- .../machines/register/alloy_furnace.lua | 38 ++++++- .../technic/machines/register/battery_box.lua | 104 ++++++++++++++---- .../technic/machines/register/common.lua | 18 ++- .../machines/register/grinder_recipes.lua | 44 ++++++-- .../technic/machines/supply_converter.lua | 2 +- .../technic/machines/switching_station.lua | 9 +- mods/technic/technic/register.lua | 1 + .../textures/technic_carbon_steel_dust.png | Bin 0 -> 416 bytes .../textures/technic_cast_iron_dust.png | Bin 0 -> 420 bytes .../textures/technic_wrought_iron_dust.png | Bin 0 -> 448 bytes .../technicx32/technic_carbon_steel_dust.png | Bin 0 -> 1228 bytes .../technicx32/technic_cast_iron_dust.png | Bin 0 -> 1225 bytes .../technicx32/technic_wrought_iron_dust.png | Bin 0 -> 1202 bytes mods/technic/technic/tools/cans.lua | 4 +- mods/technic/technic/tools/mining_lasers.lua | 22 ++-- mods/technic/technic_chests/copper_chest.lua | 2 +- mods/technic/technic_chests/depends.txt | 1 + mods/technic/technic_chests/gold_chest.lua | 2 +- mods/technic/technic_chests/iron_chest.lua | 14 +-- mods/technic/technic_chests/mithril_chest.lua | 2 +- mods/technic/technic_chests/silver_chest.lua | 2 +- mods/technic/technic_worldgen/crafts.lua | 75 +++++++++++++ mods/technic/technic_worldgen/locale/de.txt | 8 ++ .../technic_worldgen/locale/template.txt | 8 ++ mods/technic/technic_worldgen/nodes.lua | 57 ++++++++++ .../textures/technic_carbon_steel_block.png | Bin 0 -> 606 bytes .../textures/technic_carbon_steel_ingot.png | Bin 0 -> 312 bytes .../textures/technic_cast_iron_block.png | Bin 0 -> 606 bytes .../textures/technic_cast_iron_ingot.png | Bin 0 -> 315 bytes .../textures/technic_wrought_iron_block.png | Bin 0 -> 572 bytes .../textures/technic_wrought_iron_ingot.png | Bin 0 -> 293 bytes mods/technic/wrench/depends.txt | 1 + mods/technic/wrench/init.lua | 6 +- mods/unified_inventory/.gitignore | 2 - mods/unified_inventory/internal.lua | 45 ++++++++ mods/xban2/init.lua | 2 +- 72 files changed, 679 insertions(+), 210 deletions(-) create mode 100644 mods/maptools/textures/maptools_grass_side_12.png create mode 100644 mods/maptools/textures/maptools_grass_side_4.png create mode 100644 mods/maptools/textures/maptools_grass_side_8.png create mode 100644 mods/random_buildings/cottages/textures/cottages_slate.png create mode 100644 mods/technic/notes_on_iron create mode 100644 mods/technic/technic/textures/technic_carbon_steel_dust.png create mode 100644 mods/technic/technic/textures/technic_cast_iron_dust.png create mode 100644 mods/technic/technic/textures/technic_wrought_iron_dust.png create mode 100644 mods/technic/technic/textures/technicx32/technic_carbon_steel_dust.png create mode 100644 mods/technic/technic/textures/technicx32/technic_cast_iron_dust.png create mode 100644 mods/technic/technic/textures/technicx32/technic_wrought_iron_dust.png create mode 100644 mods/technic/technic_worldgen/textures/technic_carbon_steel_block.png create mode 100644 mods/technic/technic_worldgen/textures/technic_carbon_steel_ingot.png create mode 100644 mods/technic/technic_worldgen/textures/technic_cast_iron_block.png create mode 100644 mods/technic/technic_worldgen/textures/technic_cast_iron_ingot.png create mode 100644 mods/technic/technic_worldgen/textures/technic_wrought_iron_block.png create mode 100644 mods/technic/technic_worldgen/textures/technic_wrought_iron_ingot.png delete mode 100644 mods/unified_inventory/.gitignore diff --git a/mods/item_tweaks/init.lua b/mods/item_tweaks/init.lua index be36dbe..efad17f 100644 --- a/mods/item_tweaks/init.lua +++ b/mods/item_tweaks/init.lua @@ -1,3 +1,3 @@ local modpath = minetest.get_modpath(minetest.get_current_modname()) -dofile(modpath.."/item_entity.lua") + dofile(modpath.."/item_drop.lua") diff --git a/mods/item_tweaks/item_drop.lua b/mods/item_tweaks/item_drop.lua index 7ed7e04..cabe406 100644 --- a/mods/item_tweaks/item_drop.lua +++ b/mods/item_tweaks/item_drop.lua @@ -6,16 +6,6 @@ if drops == nil then drops = {} end -local function iprint(...) - -- wtf - local thingies = {...} - - for i, v in ipairs(thingies) do - thingies[i] = tostring(v) - end - print('\27[1m[item_drop] '..table.concat(thingies, ' '), '\27[m') -end - local movers = {} local removedAlreadyDammit = {} diff --git a/mods/maptools/README.txt b/mods/maptools/README.txt index 4c15581..f0ff538 100644 --- a/mods/maptools/README.txt +++ b/mods/maptools/README.txt @@ -1,22 +1,15 @@ -Calinou's Minetest Mods -===================== +Map Tools +========================================================== -Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. +Map Tools for Minetest (http://minetest.net), a free and open source infinite +world block sandbox game. -This Git repository is mostly made for servers; it allows easy updating. +**Moved to Gitorious:** https://gitorious.com/calinou/maptools/ -To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. +---------------------- +To install, just clone this repository into your "mods" directory. +Map Tools code is under CC0, textures are under CC BY-SA 3.0 unported. -Misc stuff -===================== - -All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. - -Mods' forum threads: -More Blocks: http://minetest.net/forum/viewtopic.php?id=509 -More Ores: http://minetest.net/forum/viewtopic.php?id=549 -Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 -Doors+: http://minetest.net/forum/viewtopic.php?id=2059 -Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 +Forum topic: http://minetest.net/forum/viewtopic.php?id=1882 diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua index 9446cef..fdd0cd5 100644 --- a/mods/maptools/init.lua +++ b/mods/maptools/init.lua @@ -182,10 +182,11 @@ minetest.register_node("maptools:grass", { range = 12, stack_max = 10000, tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + paramtype2 = "facedir", drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.4}, + footstep = {name="default_grass_footstep", gain = 0.4}, }), }) @@ -201,6 +202,26 @@ minetest.register_node("maptools:fullgrass", { }), }) +for slab_num=1,3,1 do + minetest.register_node("maptools:slab_grass_" .. slab_num * 4, { + description = S("Grass Slab"), + range = 12, + stack_max = 10000, + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^maptools_grass_side_" .. slab_num * 4 .. ".png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.5 + slab_num * 0.25, 0.5}, + }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), + }) +end + minetest.register_node("maptools:cobble", { description = S("Unbreakable Cobblestone"), range = 12, diff --git a/mods/maptools/textures/maptools_grass_side_12.png b/mods/maptools/textures/maptools_grass_side_12.png new file mode 100644 index 0000000000000000000000000000000000000000..6b264356e07ceea319bb32ccfe54f69769a38295 GIT binary patch literal 561 zcmV-10?z%3P)ki}a2qNcJg8 zr3U6<5b6MlM++rk?`sWPY7X|=2v5f_G0aF(*lpoB4uqOQwM}C`B$ZNpUOV{r4xVl<=b~c{mNwRlua7&B zNz3B>tK9vig_Vct9#aS38*Hx?Uc7zw<A)W}} z9uNXqKm!6W`Naf~KkDUUyZ77guXsoK&mZ^!s88pygP6FM00000NkvXXu0mjfuj=v| literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_grass_side_4.png b/mods/maptools/textures/maptools_grass_side_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ea87a38e28fb369860bdbab9ef9b079c4e1e37df GIT binary patch literal 294 zcmV+>0oneEP)i;0PYF&YOnCJdHVz|xjN&llx2!Cu2o*uwD~Y$4d#hRO4s)6oIa#5K{8 zCY=;y8_=y5yRJ+7*vD5cRxOFY3$)fy8REs7)wCiE74MHfNF$-hD!PLJM+j6$qXLWB zIA-}W=WNtRMKaV*mgE literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_grass_side_8.png b/mods/maptools/textures/maptools_grass_side_8.png new file mode 100644 index 0000000000000000000000000000000000000000..6db2502deb3eec9434fdfe23574dca1dfc3002d9 GIT binary patch literal 466 zcmV;@0WJQCP)Ac{hXKQ#GV|Jrl+)6+d``ytb;^Q#FxoI2M1?Cs33j-L3D9*6Z`-oWay}a z=p=~X)D#p45nm{=2$gtpPLi6JlauCg=};8>1pUDUHy77-!@hkWr&i`onh0~J1KggW zxt-w}!|!;A9CQ!`&HxS+EnMHl5n<>UY9Cr0DTgQ%jVR4{B(*-BA$XR>ST0B5aGt!* zVUHBik3OE~L1u{B1G-xo#iHiR`Y)7G(C=hS&IY(5=m`%U*fgpU+aFsTD^H_K4#`fB zB<|B$YmoMKXn#*RG!>wNX^ov^Xr&m5!S@x>R)?vR1(-08KEK`^%}sjfM5sRbw)*K^ zsXUAVAV4zB>` z04`ozG$Qg)fSW)DQ~(1AVDI_VJW$`gn|u1gU%US*?B*YT0K!3zu0nfwumAu607*qo IM6N<$g6>t-+W-In literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_superapple.png b/mods/maptools/textures/maptools_superapple.png index 8f1aa367a50aa74d338289cf32f34fb3e7244eb6..683382703484cec994af1d7b83c7b7833a48dc17 100644 GIT binary patch delta 213 zcmV;`04o1}=K+uze**vj04OaFQvd(}NKi~vMF0Q*6;1#bR{$Gg0IGWcu6+Qug#f;b z0LPO6%as7nnE=KUPu*aqk{DFKLnhIQ$F5RoDtpWUjDgK%%MOmn;%(1Lf>IneO{;Wk>_rPey-d P00000NkvXXu0mjf)tps> delta 107 zcmV-x0F?jd0e+AfWd;BM03Y-JVE_OCMM*?KR5;6HU>F6%05IZ|Ig<1riO0lXGw(m? z#-kcSq6-)p{u85?5ufI7M<5(78{F!da9I!2jLs(70Aj(w8$fX^0072c4yI^Om^}ah N002ovPDHLkV1kvzD3AaE diff --git a/mods/moreblocks/README.txt b/mods/moreblocks/README.txt index aa99eda..dd0fc44 100644 --- a/mods/moreblocks/README.txt +++ b/mods/moreblocks/README.txt @@ -1,9 +1,13 @@ More Blocks -========== +========================================================== More Blocks for Minetest (http://minetest.net), a free and open source infinite world block sandbox game. +**Moved to Gitorious:** https://gitorious.com/calinou/moreblocks/ + +---------------------- + To install, just clone this repository into your "mods" directory. More Blocks code is under the zlib license, textures are under CC BY-SA 3.0 unported. diff --git a/mods/moreores/README.txt b/mods/moreores/README.txt index 4c15581..0d81373 100644 --- a/mods/moreores/README.txt +++ b/mods/moreores/README.txt @@ -1,22 +1,16 @@ -Calinou's Minetest Mods -===================== +More Ores +========================================================== -Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. +More Ores for Minetest (http://minetest.net), a free and open source infinite +world block sandbox game. -This Git repository is mostly made for servers; it allows easy updating. +**Moved to Gitorious:** https://gitorious.com/calinou/moreores/ -To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. +---------------------- +To install, just clone this repository into your "mods" directory. +More Ores code is under CC0, textures are under CC BY-SA 3.0 unported. -Misc stuff -===================== +Forum topic: http://forum.minetest.net/viewtopic.php?id=549 -All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. - -Mods' forum threads: -More Blocks: http://minetest.net/forum/viewtopic.php?id=509 -More Ores: http://minetest.net/forum/viewtopic.php?id=549 -Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 -Doors+: http://minetest.net/forum/viewtopic.php?id=2059 -Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/random_buildings/README.md b/mods/random_buildings/README.md index 1c43b02..a639411 100644 --- a/mods/random_buildings/README.md +++ b/mods/random_buildings/README.md @@ -4,3 +4,5 @@ WARNING: random_buildings:build looks like a chest and "spawns" a building. It d The mod 'cottages' is ready for usage. 'random_buildings' and 'mobf_trader' are in development stage. If you want to run this modpack on a server, delete these two subfolders for now! + +The texture cottages/textures/cottages_slate.png is derived from Universal schema.jpg by Stefanie Lindener, which can be found here: http://de.wikipedia.org/w/index.php?title=Datei:Universal_schema.jpg&filetimestamp=20060510110309& The texture is CC-by-sa 2.0/de. diff --git a/mods/random_buildings/cottages/locale/de.txt b/mods/random_buildings/cottages/locale/de.txt index 16349be..9677a3b 100644 --- a/mods/random_buildings/cottages/locale/de.txt +++ b/mods/random_buildings/cottages/locale/de.txt @@ -82,16 +82,25 @@ Roof wood = Holzdach Roof black = Schwarzes Dach Roof red = Rotes Dach Roof brown = Braunes Dach +Roof reet = Reetdach +Roof slate = Schieferdach Roof connector straw = Strohdachverbinder Roof connector wood = Holzdachverbinder Roof connector black = Schwarzer Dachverbinder Roof connector red = Roter Dachverbinder Roof connector brown = Brauner Dachverbinder +Roof connector reet = Reet-Dachverbinder +Roof connector slate = Schiefer-Dachverbinder Roof (flat) straw = Strohdach (flach) Roof (flat) wood = Holzdach (flach) Roof (flat) black = Schwarzes Dach (flach) Roof (flat) red = Rotes Dach (flach) Roof (flat) brown = Braunes Dach (flach) +Roof (flat) reet = Reetdach (flach) +Roof (flat) slate = Schieferdach (flach) +Vertical Slate = Vertikaler Schiefer +Reet for thatching = Reet + ### nodes_straw.lua ### layer of straw = Strohschicht diff --git a/mods/random_buildings/cottages/locale/template.txt b/mods/random_buildings/cottages/locale/template.txt index 06c26c3..cbc6990 100644 --- a/mods/random_buildings/cottages/locale/template.txt +++ b/mods/random_buildings/cottages/locale/template.txt @@ -82,16 +82,24 @@ Roof wood = Roof black = Roof red = Roof brown = +Roof reet = +Roof slate = Roof connector straw = Roof connector wood = Roof connector black = Roof connector red = Roof connector brown = +Roof connector reet = +Roof connector slate = Roof (flat) straw = Roof (flat) wood = Roof (flat) black = Roof (flat) red = Roof (flat) brown = +Roof (flat) reet = +Roof (flat) slate = +Vertical Slate = +Reet for thatching = ### nodes_straw.lua ### layer of straw = diff --git a/mods/random_buildings/cottages/nodes_roof.lua b/mods/random_buildings/cottages/nodes_roof.lua index 71e7732..668a43f 100644 --- a/mods/random_buildings/cottages/nodes_roof.lua +++ b/mods/random_buildings/cottages/nodes_roof.lua @@ -157,6 +157,9 @@ end -- of cottages.register_roof( name, tiles, basic_material ) cottages.register_roof( 'straw', {"cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png"}, 'cottages:straw_mat', nil ); +cottages.register_roof( 'reet', + {"cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png"}, + 'default:papyrus', nil ); cottages.register_roof( 'wood', {"default_tree.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","default_tree.png"}, 'default:wood', nil); @@ -169,3 +172,43 @@ cottages.register_roof( 'red', cottages.register_roof( 'brown', {"cottages_homedecor_shingles_wood.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_wood.png"}, 'homedecor:shingles_wood', 'default:dirt'); +cottages.register_roof( 'slate', + {"cottages_slate.png","default_wood.png","cottages_slate.png","cottages_slate.png","default_wood.png","cottages_slate.png"}, + 'default:stone', nil); + + +--------------------------------------------------------------------------------------- +-- slate roofs are sometimes on vertical fronts of houses +--------------------------------------------------------------------------------------- +minetest.register_node("cottages:slate_vertical", { + description = S("Vertical Slate"), + tiles = {"cottages_slate.png","default_wood.png","cottages_slate.png","cottages_slate.png","default_wood.png","cottages_slate.png"}, + paramtype2 = "facedir", + groups = {cracky=2, stone=1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_craft({ + output = "cottages:slate_vertical", + recipe = { {'default:stone', 'default:wood', '' } + } +}); + +--------------------------------------------------------------------------------------- +-- Reed might also be needed as a full block +--------------------------------------------------------------------------------------- +minetest.register_node("cottages:reet", { + description = S("Reet for thatching"), + tiles = {"cottages_reet.png"}, + groups = {snappy=3,choppy=3,oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_craft({ + output = "cottages:reet", + recipe = { {'default:papyrus','default:papyrus'}, + {'default:papyrus','default:papyrus'}, + }, +}) diff --git a/mods/random_buildings/cottages/textures/cottages_slate.png b/mods/random_buildings/cottages/textures/cottages_slate.png new file mode 100644 index 0000000000000000000000000000000000000000..f85f162e7487b7f39feb93414d8081cf79bfe4b3 GIT binary patch literal 8609 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 CC@%>B literal 0 HcmV?d00001 diff --git a/mods/technic/concrete/init.lua b/mods/technic/concrete/init.lua index 869dbbd..03a865a 100644 --- a/mods/technic/concrete/init.lua +++ b/mods/technic/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/mods/technic/notes_on_iron b/mods/technic/notes_on_iron new file mode 100644 index 0000000..7facbcf --- /dev/null +++ b/mods/technic/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/mods/technic/technic/crafts.lua b/mods/technic/technic/crafts.lua index 0beea30..29199b3 100644 --- a/mods/technic/technic/crafts.lua +++ b/mods/technic/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/mods/technic/technic/legacy.lua b/mods/technic/technic/legacy.lua index 37fb1d5..bc6fd9c 100644 --- a/mods/technic/technic/legacy.lua +++ b/mods/technic/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/mods/technic/technic/locale/de.txt b/mods/technic/technic/locale/de.txt index acf6dfb..3b03f0b 100644 --- a/mods/technic/technic/locale/de.txt +++ b/mods/technic/technic/locale/de.txt @@ -36,6 +36,7 @@ Inventory move disallowed due to protection = Das Inventar ist geschuetzt, Zugri # $1: Machine name (Includes tier) %s Active = %s ist eingeschaltet %s Disabled = %s ist ausgeschaltet +%s Enabled = %s Idle = %s ist bereit %s Improperly Placed = %s ist falsch plaziert %s Unpowered = %s hat keine Stromversorgung @@ -135,7 +136,6 @@ Cobble = Pflasterstein: Dirt = Erde: Leaves = Laub: Sandstone = Sandstein: -Steel = Stahl: Stone = Stein: Tree = Baumstamm: Wooden = Holz: @@ -148,16 +148,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/mods/technic/technic/locale/es.txt b/mods/technic/technic/locale/es.txt index 4ac9693..1f2c274 100644 --- a/mods/technic/technic/locale/es.txt +++ b/mods/technic/technic/locale/es.txt @@ -35,6 +35,7 @@ Machine cannot be removed because it is not empty = La maquina no puede removers Inventory move disallowed due to protection = # $1: Machine name (Includes tier) %s Active = %s Activo +%s Enabled = %s Idle = %s Quieto %s Unpowered = %s Sin Energia %s Out Of Fuel = %s Sin Combustible @@ -121,7 +122,6 @@ Slope Edge = Borde de Rampa Slope = Rampa Element T = Elemento T Cylinder = Cilindro -Steel = Acero Cobble = Adoquines Stone = Piedra Brick = Ladrillo @@ -138,16 +138,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/mods/technic/technic/locale/it.txt b/mods/technic/technic/locale/it.txt index 03d1c5f..764c099 100644 --- a/mods/technic/technic/locale/it.txt +++ b/mods/technic/technic/locale/it.txt @@ -33,6 +33,7 @@ Inventory move disallowed due to protection = Impossibile muovere l'inventario a # $1: Machine name (Includes tier) %s Active = %s Attivo %s Disabled = %s Disabilitato +%s Enabled = %s Idle = %s Inattivo %s Improperly Placed = %s Piazzato impropiamente %s Unpowered = %s Non alimentato @@ -132,7 +133,6 @@ Cobble = Ciottolato Dirt = Terra Leaves = Foglie Sandstone = Arenaria -Steel = Acciaio Stone = Pietra Tree = Albero Wooden = Legno @@ -145,16 +145,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/mods/technic/technic/locale/template.txt b/mods/technic/technic/locale/template.txt index 5bda22f..ccf0bde 100644 --- a/mods/technic/technic/locale/template.txt +++ b/mods/technic/technic/locale/template.txt @@ -36,6 +36,7 @@ Inventory move disallowed due to protection = # $1: Machine name (Includes tier) %s Active = %s Disabled = +%s Enabled = %s Idle = %s Improperly Placed = %s Unpowered = @@ -135,7 +136,6 @@ Cobble = Dirt = Leaves = Sandstone = -Steel = Stone = Tree = Wooden = @@ -148,16 +148,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/mods/technic/technic/machines/HV/battery_box.lua b/mods/technic/technic/machines/HV/battery_box.lua index b009d80..1e054ec 100644 --- a/mods/technic/technic/machines/HV/battery_box.lua +++ b/mods/technic/technic/machines/HV/battery_box.lua @@ -15,5 +15,7 @@ technic.register_battery_box({ discharge_rate = 400000, charge_step = 10000, discharge_step = 40000, + upgrade = 1, + tube = 1, }) diff --git a/mods/technic/technic/machines/HV/quarry.lua b/mods/technic/technic/machines/HV/quarry.lua index 4d6d932..1f0629b 100644 --- a/mods/technic/technic/machines/HV/quarry.lua +++ b/mods/technic/technic/machines/HV/quarry.lua @@ -3,41 +3,37 @@ 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", }) local quarry_dig_above_nodes = 3 -- How far above the quarry we will dig nodes local quarry_max_depth = 100 -local function get_quarry_formspec(size) - return "size[3,1.5]".. - "field[1,0.5;2,1;size;Radius;"..size.."]".. - "button[0,1;3,1;toggle;"..S("Enable/Disable").."]" +local function set_quarry_formspec(meta) + local formspec = "size[3,1.5]".. + "field[1,0.5;2,1;size;Radius;"..meta:get_int("size").."]" + if meta:get_int("enabled") == 0 then + formspec = formspec.."button[0,1;3,1;enable;"..S("%s Disabled"):format(S("Quarry")).."]" + else + formspec = formspec.."button[0,1;3,1;disable;"..S("%s Enabled"):format(S("Quarry")).."]" + end + meta:set_string("formspec", formspec) end local function quarry_receive_fields(pos, formname, fields, sender) local meta = minetest.get_meta(pos) - local size = tonumber(fields.size) or 0 - - if fields.toggle then - if meta:get_int("enabled") == 0 then - meta:set_int("enabled", 1) - else - meta:set_int("enabled", 0) - end - end - - -- Smallest size is 2. Largest is 8. - size = math.max(size, 2) - size = math.min(size, 8) - - if meta:get_int("size") ~= size then + if fields.size then + local size = tonumber(fields.size) or 0 + size = math.max(size, 2) + size = math.min(size, 8) meta:set_int("size", size) - meta:set_string("formspec", get_quarry_formspec(size)) end + if fields.enable then meta:set_int("enabled", 1) end + if fields.disable then meta:set_int("enabled", 0) end + set_quarry_formspec(meta) end local function get_quarry_center(pos, size) @@ -103,19 +99,15 @@ local function quarry_dig(pos, center, size) end if minetest.is_protected and minetest.is_protected(digpos, owner) then meta:set_int("enabled", 0) + set_quarry_formspec(meta) return {} end dig_y = digpos.y local node = minetest.get_node(digpos) - drops = minetest.get_node_drops(node.name, "") - minetest.dig_node(digpos) - if minetest.get_node(digpos).name == node.name then - -- We tried to dig something undigable like a - -- filled chest. Notice that we check for a node - -- change, not for air. This is so that we get drops - -- from things like concrete posts with platforms, - -- which turn into regular concrete posts when dug. - drops = {} + local node_def = minetest.registered_nodes[node.name] or { diggable = false } + if node_def.diggable and ((not node_def.can_dig) or node_def.can_dig(digpos, nil)) then + minetest.remove_node(digpos) + drops = minetest.get_node_drops(node.name, "") end elseif not (dig_y < pos.y - quarry_max_depth) then dig_y = dig_y - 16 @@ -136,20 +128,19 @@ 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 = { connect_sides = {top = 1}, }, on_construct = function(pos) - local size = 4 local meta = minetest.get_meta(pos) meta:set_string("infotext", S("Quarry")) - meta:set_string("formspec", get_quarry_formspec(4)) - meta:set_int("size", size) + meta:set_int("size", 4) + set_quarry_formspec(meta) meta:set_int("dig_y", pos.y) end, after_place_node = function(pos, placer, itemstack) diff --git a/mods/technic/technic/machines/HV/solar_array.lua b/mods/technic/technic/machines/HV/solar_array.lua index cb4874a..ceea77a 100644 --- a/mods/technic/technic/machines/HV/solar_array.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/alloy_furnace.lua b/mods/technic/technic/machines/LV/alloy_furnace.lua index 0637f48..b24e192 100644 --- a/mods/technic/technic/machines/LV/alloy_furnace.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/battery_box.lua b/mods/technic/technic/machines/LV/battery_box.lua index cba2ef6..e21a66a 100644 --- a/mods/technic/technic/machines/LV/battery_box.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/cnc.lua b/mods/technic/technic/machines/LV/cnc.lua index e466dad..baee2c9 100644 --- a/mods/technic/technic/machines/LV/cnc.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/cnc_nodes.lua b/mods/technic/technic/machines/LV/cnc_nodes.lua index a12307f..4835e49 100644 --- a/mods/technic/technic/machines/LV/cnc_nodes.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/electric_furnace.lua b/mods/technic/technic/machines/LV/electric_furnace.lua index a67fca1..8bb1562 100644 --- a/mods/technic/technic/machines/LV/electric_furnace.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/solar_array.lua b/mods/technic/technic/machines/LV/solar_array.lua index 63f64f1..4d2c3b3 100644 --- a/mods/technic/technic/machines/LV/solar_array.lua +++ b/mods/technic/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/mods/technic/technic/machines/LV/solar_panel.lua b/mods/technic/technic/machines/LV/solar_panel.lua index d49f609..95b359d 100644 --- a/mods/technic/technic/machines/LV/solar_panel.lua +++ b/mods/technic/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/mods/technic/technic/machines/MV/battery_box.lua b/mods/technic/technic/machines/MV/battery_box.lua index 6a996b8..45437c1 100644 --- a/mods/technic/technic/machines/MV/battery_box.lua +++ b/mods/technic/technic/machines/MV/battery_box.lua @@ -16,5 +16,7 @@ technic.register_battery_box({ discharge_rate = 80000, charge_step = 2000, discharge_step = 8000, + upgrade = 1, + tube = 1, }) diff --git a/mods/technic/technic/machines/MV/solar_array.lua b/mods/technic/technic/machines/MV/solar_array.lua index d939fb9..227d8ee 100644 --- a/mods/technic/technic/machines/MV/solar_array.lua +++ b/mods/technic/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/mods/technic/technic/machines/MV/wind_mill.lua b/mods/technic/technic/machines/MV/wind_mill.lua index 32fa5c3..6930228 100644 --- a/mods/technic/technic/machines/MV/wind_mill.lua +++ b/mods/technic/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/mods/technic/technic/machines/register/alloy_furnace.lua b/mods/technic/technic/machines/register/alloy_furnace.lua index ebf5eab..ac1cd05 100644 --- a/mods/technic/technic/machines/register/alloy_furnace.lua +++ b/mods/technic/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/mods/technic/technic/machines/register/battery_box.lua b/mods/technic/technic/machines/register/battery_box.lua index 3b5728b..c8b3337 100644 --- a/mods/technic/technic/machines/register/battery_box.lua +++ b/mods/technic/technic/machines/register/battery_box.lua @@ -29,6 +29,33 @@ minetest.register_tool("technic:battery", { } }) +local tube = { + insert_object = function(pos, node, stack, direction) + if direction.y == 0 then + return stack + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if direction.y > 0 then + return inv:add_item("src", stack) + else + return inv:add_item("dst", stack) + end + end, + can_insert = function(pos, node, stack, direction) + if direction.y == 0 then + return false + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if direction.y > 0 then + return inv:room_for_item("src", stack) + else + return inv:room_for_item("dst", stack) + end + end, + connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, +} function technic.register_battery_box(data) local tier = data.tier @@ -45,12 +72,25 @@ function technic.register_battery_box(data) "label[5,0;"..S("Discharge").."]".. "label[1,3;"..S("Power level").."]".. "list[current_player;main;0,5;8,4;]" + + if data.upgrade then + formspec = formspec.. + "list[current_name;upgrade1;3.5,3;1,1;]".. + "list[current_name;upgrade2;4.5,3;1,1;]".. + "label[3.5,4;"..S("Upgrade Slots").."]" + end for i = 0, 8 do local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2} if i ~= 0 then groups.not_in_creative_inventory = 1 end + + if data.tube then + groups.tubedevice = 1 + groups.tubedevice_receiver = 1 + end + minetest.register_node("technic:"..ltier.."_battery_box"..i, { description = S("%s Battery Box"):format(tier), tiles = {"technic_"..ltier.."_battery_box_top.png", @@ -60,6 +100,8 @@ function technic.register_battery_box(data) "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png", "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png"}, groups = groups, + tube = data.tube and tube or nil, + paramtype2 = "facedir", sounds = default.node_sound_wood_defaults(), drop = "technic:"..ltier.."_battery_box0", on_construct = function(pos) @@ -75,6 +117,8 @@ function technic.register_battery_box(data) meta:set_float("internal_EU_charge", 0) inv:set_size("src", 1) inv:set_size("dst", 1) + inv:set_size("upgrade1", 1) + inv:set_size("upgrade2", 1) end, can_dig = technic.machine_can_dig, allow_metadata_inventory_put = technic.machine_inventory_put, @@ -100,30 +144,49 @@ function technic.register_battery_box(data) -- Power off automatically if no longer connected to a switching station technic.switching_station_timeout_count(pos, tier) + local EU_upgrade, tube_upgrade = 0, 0 + if data.upgrade then + EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta) + end + local max_charge = data.max_charge * (1 + EU_upgrade / 10) + -- Charge/discharge the battery with the input EUs if eu_input >= 0 then - current_charge = math.min(current_charge + eu_input, data.max_charge) + current_charge = math.min(current_charge + eu_input, max_charge) else current_charge = math.max(current_charge + eu_input, 0) end -- Charging/discharging tools here - current_charge = technic.charge_tools(meta, + local tool_full, tool_empty + current_charge, tool_full = technic.charge_tools(meta, current_charge, data.charge_step) - current_charge = technic.discharge_tools(meta, + current_charge, tool_empty = technic.discharge_tools(meta, current_charge, data.discharge_step, - data.max_charge) + max_charge) + + if data.tube then + local inv = meta:get_inventory() + technic.handle_machine_pipeworks(pos, tube_upgrade, + function(pos, x_velocity, z_velocity) + if tool_full and not inv:is_empty("src") then + technic.send_items(pos, x_velocity, z_velocity, "src") + elseif tool_empty and not inv:is_empty("dst") then + technic.send_items(pos, x_velocity, z_velocity, "dst") + end + end) + end -- We allow batteries to charge on less than the demand meta:set_int(tier.."_EU_demand", - math.min(data.charge_rate, data.max_charge - current_charge)) + math.min(data.charge_rate, max_charge - current_charge)) meta:set_int(tier.."_EU_supply", math.min(data.discharge_rate, current_charge)) meta:set_int("internal_EU_charge", current_charge) -- Select node textures - local charge_count = math.ceil((current_charge / data.max_charge) * 8) + local charge_count = math.ceil((current_charge / max_charge) * 8) charge_count = math.min(charge_count, 8) charge_count = math.max(charge_count, 0) local last_count = meta:get_float("last_side_shown") @@ -132,7 +195,7 @@ function technic.register_battery_box(data) meta:set_float("last_side_shown", charge_count) end - local charge_percent = math.floor(current_charge / data.max_charge * 100) + local charge_percent = math.floor(current_charge / max_charge * 100) meta:set_string("formspec", formspec.. "image[1,1;1,2;technic_power_meter_bg.png" @@ -140,7 +203,7 @@ function technic.register_battery_box(data) ..":technic_power_meter_fg.png]") local infotext = S("%s Battery Box: %d/%d"):format(tier, - current_charge, data.max_charge) + current_charge, max_charge) if eu_input == 0 then infotext = S("%s Idle"):format(infotext) end @@ -160,14 +223,13 @@ end -- End registration function technic.charge_tools(meta, batt_charge, charge_step) local inv = meta:get_inventory() if inv:is_empty("src") then - return batt_charge + return batt_charge, false end local srcstack = inv:get_stack("src", 1) - local src_meta = minetest.deserialize(srcstack:get_metadata()) local toolname = srcstack:get_name() if not technic.power_tools[toolname] then - return batt_charge + return batt_charge, false end -- Set meta data for the tool if it didn't do it itself src_meta = minetest.deserialize(srcstack:get_metadata()) @@ -178,8 +240,10 @@ function technic.charge_tools(meta, batt_charge, charge_step) -- Do the charging local item_max_charge = technic.power_tools[toolname] local tool_charge = src_meta.charge - if tool_charge >= item_max_charge or batt_charge <= 0 then - return batt_charge + if tool_charge >= item_max_charge then + return batt_charge, true + elseif batt_charge <= 0 then + return batt_charge, false end charge_step = math.min(charge_step, batt_charge) charge_step = math.min(charge_step, item_max_charge - tool_charge) @@ -189,19 +253,19 @@ function technic.charge_tools(meta, batt_charge, charge_step) src_meta.charge = tool_charge srcstack:set_metadata(minetest.serialize(src_meta)) inv:set_stack("src", 1, srcstack) - return batt_charge + return batt_charge, (tool_charge == item_max_charge) end function technic.discharge_tools(meta, batt_charge, charge_step, max_charge) local inv = meta:get_inventory() if inv:is_empty("dst") then - return batt_charge + return batt_charge, false end srcstack = inv:get_stack("dst", 1) local toolname = srcstack:get_name() if technic.power_tools[toolname] == nil then - return batt_charge + return batt_charge, false end -- Set meta data for the tool if it didn't do it itself :-( local src_meta = minetest.deserialize(srcstack:get_metadata()) @@ -213,8 +277,10 @@ function technic.discharge_tools(meta, batt_charge, charge_step, max_charge) -- Do the discharging local item_max_charge = technic.power_tools[toolname] local tool_charge = src_meta.charge - if tool_charge <= 0 or batt_charge >= max_charge then - return batt_charge + if tool_charge <= 0 then + return batt_charge, true + elseif batt_charge >= max_charge then + return batt_charge, false end charge_step = math.min(charge_step, max_charge - batt_charge) charge_step = math.min(charge_step, tool_charge) @@ -224,6 +290,6 @@ function technic.discharge_tools(meta, batt_charge, charge_step, max_charge) src_meta.charge = tool_charge srcstack:set_metadata(minetest.serialize(src_meta)) inv:set_stack("dst", 1, srcstack) - return batt_charge + return batt_charge, (tool_charge == 0) end diff --git a/mods/technic/technic/machines/register/common.lua b/mods/technic/technic/machines/register/common.lua index 8aab96e..3933b0c 100644 --- a/mods/technic/technic/machines/register/common.lua +++ b/mods/technic/technic/machines/register/common.lua @@ -37,12 +37,16 @@ function technic.handle_machine_upgrades(meta) end -function technic.send_items(pos, x_velocity, z_velocity) +function technic.send_items(pos, x_velocity, z_velocity, output_name) -- Send items on their way in the pipe system. + if output_name == nil then + output_name = "dst" + end + local meta = minetest.get_meta(pos) local inv = meta:get_inventory() local i = 0 - for _, stack in ipairs(inv:get_list("dst")) do + for _, stack in ipairs(inv:get_list(output_name)) do i = i + 1 if stack then local item0 = stack:to_table() @@ -53,7 +57,7 @@ function technic.send_items(pos, x_velocity, z_velocity) item1:setvelocity({x=x_velocity, y=0, z=z_velocity}) item1:setacceleration({x=0, y=0, z=0}) stack:take_item(1) - inv:set_stack("dst", i, stack) + inv:set_stack(output_name, i, stack) return end end @@ -81,7 +85,11 @@ function technic.smelt_item(meta, result, speed) end end -function technic.handle_machine_pipeworks(pos, tube_upgrade) +function technic.handle_machine_pipeworks(pos, tube_upgrade, send_function) + if send_function == nil then + send_function = technic.send_items + end + local node = minetest.get_node(pos) local meta = minetest.get_meta(pos) local inv = meta:get_inventory() @@ -105,7 +113,7 @@ function technic.handle_machine_pipeworks(pos, tube_upgrade) if tube_time >= 2 then tube_time = 0 if output_tube_connected then - technic.send_items(pos, x_velocity, z_velocity) + send_function(pos, x_velocity, z_velocity) end end meta:set_int("tube_time", tube_time) diff --git a/mods/technic/technic/machines/register/grinder_recipes.lua b/mods/technic/technic/machines/register/grinder_recipes.lua index d81d421..4ae24f8 100644 --- a/mods/technic/technic/machines/register/grinder_recipes.lua +++ b/mods/technic/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,27 +50,33 @@ 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"}, - {"gloopores:arol_lump", "technic:arol_dust 2"}, - {"gloopores:talinite_lump", "technic:talinite_dust 2"}, - {"gloopores:akalin_lump", "technic:akalin_dust 2"}, {"moreores:mithril_ingot", "technic:mithril_dust 1"}, {"moreores:mithril_lump", "technic:mithril_dust 2"}, {"moreores:silver_ingot", "technic:silver_dust 1"}, {"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:stainless_steel_ingot", "technic:stainless_steel_dust 1"}, {"technic:zinc_ingot", "technic:zinc_dust 1"}, {"technic:zinc_lump", "technic:zinc_dust 2"}, {"technic:brass_ingot", "technic:brass_dust 1"}, } +if minetest.get_modpath("gloopores") then + table.insert(recipes, {"gloopores:alatro_lump", "technic:alatro_dust 2"}) + table.insert(recipes, {"gloopores:kalite_lump", "technic:kalite_dust 2"}) + table.insert(recipes, {"gloopores:arol_lump", "technic:arol_dust 2"}) + table.insert(recipes, {"gloopores:talinite_lump", "technic:talinite_dust 2"}) + table.insert(recipes, {"gloopores:akalin_lump", "technic:akalin_dust 2"}) +end + if minetest.get_modpath("homedecor") then table.insert(recipes, {"home_decor:brass_ingot", "technic:brass_dust 1"}) end @@ -87,22 +103,26 @@ local function register_dust(name, ingot) end -- Sorted alphibeticaly -register_dust("Akalin", "glooptest:akalin_ingot") -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") +if minetest.get_modpath("gloopores") then + register_dust("Akalin", "glooptest:akalin_ingot") + register_dust("Alatro", "glooptest:alatro_ingot") + register_dust("Arol", "glooptest:arol_ingot") + register_dust("Talinite", "glooptest:talinite_ingot") +end minetest.register_craft({ type = "fuel", diff --git a/mods/technic/technic/machines/supply_converter.lua b/mods/technic/technic/machines/supply_converter.lua index d94027b..4340f22 100644 --- a/mods/technic/technic/machines/supply_converter.lua +++ b/mods/technic/technic/machines/supply_converter.lua @@ -76,6 +76,6 @@ minetest.register_abm({ }) for tier, machines in pairs(technic.machines) do - technic.register_machine(tier, "technic:supply_converter", technic.battery) + technic.register_machine(tier, "technic:supply_converter", technic.producer_receiver) end diff --git a/mods/technic/technic/machines/switching_station.lua b/mods/technic/technic/machines/switching_station.lua index f7a0f44..88d1890 100644 --- a/mods/technic/technic/machines/switching_station.lua +++ b/mods/technic/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"} } }) @@ -106,6 +106,9 @@ local check_node_subp = function(PR_nodes, RE_nodes, BA_nodes, all_nodes, pos, m add_new_cable_node(PR_nodes, pos) elseif machines[name] == technic.receiver then add_new_cable_node(RE_nodes, pos) + elseif machines[name] == technic.producer_receiver then + add_new_cable_node(PR_nodes, pos) + add_new_cable_node(RE_nodes, pos) elseif machines[name] == technic.battery then add_new_cable_node(BA_nodes, pos) end diff --git a/mods/technic/technic/register.lua b/mods/technic/technic/register.lua index 09721ff..6a237f9 100644 --- a/mods/technic/technic/register.lua +++ b/mods/technic/technic/register.lua @@ -3,6 +3,7 @@ technic.receiver = "RE" technic.producer = "PR" +technic.producer_receiver = "PR_RE" technic.battery = "BA" technic.machines = {} diff --git a/mods/technic/technic/textures/technic_carbon_steel_dust.png b/mods/technic/technic/textures/technic_carbon_steel_dust.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa8a17eddc97c253e8d2e2379dccf2b3b505bce GIT binary patch literal 416 zcmV;R0bl-!P)H zK~y-6t&=fN!f+79-@mko1RKDR(1pQ|)t!}%$xUZNjDvxliO;09khV0?*0hwiN69%5 zO-Mx)yyPwK<$k&3CsnfDZ~9$>mb!9S#eF>`$o5e$2I8i1K$ zy1@=IKYq!<;Kf>ih+rOp{1`fZ1R}z0@qQYBnel3Spd`hcMl%@7@F3B<4jSh zTw*x96Vtf|?OKJRC`CZOKVZu;z|5#tYbcdugkbU#JujzjW!uPws3nH>oZ^H_y*p)9FX27o9UlFMD- zc`f4cB-QGb)^_{kGiglITn9>}dvV<+A`23UG=>o)4EtDChSBJiqoW+Y-=@*1XrD8h zh)^h$Wj0e-)+y6zgki)m%>=I7Bo;d$n>|OVi1~bquIo%DW9s!A4d4R?w9yD@crN7t O0000WFU8GbZ8()Nlj2>E@cM*00AUPL_t(I%dOMPZh}x0 zh2b9pA;y$oNe2c;eK#J!XK*T`&K&t-y?_=pDw1Nj95uTG(l(u_uq=xxiZD$R q&-1A3n#19MuIp4)#bh$k0Nw!-$k7PBq@tq$0000quZtEUK`pq@nDn>2 zIrsd}`QLLc%reU?|7TiTk3O+v$ul~@)~)aSJEEPPrvPYg|McBWo8D9#HoUI3Z$ESv zpsA_(f%A!fQpB!ZhY!VK=8o&v`&h7GA&!${Y;5>ktyX!Zr|0<350Xo}-@ulZBLK9w zfAX?r**iS1L?$x_-}lJpCoxTXc_uTrx3O{KBM(x*eLK+6@p-gZ%)MvZ@oh>e5d>wV zlz3hVr4+8~(9p0{4Gi>&LLs+G2=POA_purCM(#(vv-4Co2+BoGi>xq=r~rYKA-0`B zDaG*c4WtYa0+CGCt6Xk;y%6H$(xuCtix( zFNF9>O4+8A>eY3A+foa;)R~6}WmTI*^tyU!-Pg1Q0R4M_! z?*SmCMANj}PlB%Nk6yTNu6^<1r>|VP^y4p0P0e>45Us68Pgqvni@Dr5)4`3l=b&j3JkOy}$f0Q((Wr@OTDWczr4;FOR+Y=H zaGb)4o}Q04>6pDmo5{sD#A&^p1sRRJj)g`!b;|j5u zg{EmL3_}qFWnT#KeplDwJ-0RQTEp|_zs(0h`LhEDUR^yte(SMpcK-Uw$HFT?uCBv- z{ zj??|Uy?beGJuqtnV%9H!-Mc^iIGMD&3WcjITC{>{wMem8_#ukI9hWX0|7A8@Pn|$} zdoKX{_I>fTX{NerHHU1ri6C&PRK_vQ)XTZtGlMNHI~UK!z*8sC)zz1*Rwq8OtV{OQ6$)2HwK}m5#Fc@8o*8+yrxEY&zPKO^JtvXS)+Cdb08mO| z+ZmKnjE??>lo5c)W*4Y(`N3uoy(?C%tK7J8Fd26|>}%)d0y*?E3i{L;Gd@!u~8fva>qDKt$7 zz%We8eA#^Vv7L zo_u9;^1jODnuL^+IIbgvK-ZHfrAQ=nhKC2StTdTSo^p8<+s-mReh1smAcRo0TBRg} z_(@9n9;iW0(`y$l9C^|}dwVaZPPMUZ+tHip^!#USJ4+PRsaA`m)AP}FgCOuQ3==6O z#bN=&Fmc^7^X4t0QklTEGuU>9Tep4$z%(0(qL4U_)O0FeZ`$pnr? zqLf0)m_$N*RH&{SORr!5_Jd{1UK$!2`u^9})&q|c5FH)o&RSNwtyCIi`ZC#U6Jh9+ zOj;3z%2X;7BoYY>!^W~wxNZrh6uDfJ^8KoC z-O|~Cfuq~?EnAK}Z&~R#YBi@dib67(JVFRHGICR-(|MGds>1hOblpG*fs}GOAs^FB z;rkWF#)eT!kxI?OveJa%R1!i6s?|wM)5h~0N~IAYgmy#I^sk<1!d0tYZER`T`Fap| zZyAQQW@O~1p3g7FamGle=VKTqp68HCH6mq<=Q$`9V;D9<2$Yi4>plRso#XD^YnWyO zLL`)wkqCmCFNEmn>pOhtq2^;_I5>E@6a=+1Cr@r&KRJ1CSw6pbbE!1)T0Xy|H;(Ig zo;T$p9g_PrQ}3^ n|3?)-&7?DjIm}@W{~7)OD4+~BUV#Ym00000NkvXXu0mjfV$DC& literal 0 HcmV?d00001 diff --git a/mods/technic/technic/textures/technicx32/technic_wrought_iron_dust.png b/mods/technic/technic/textures/technicx32/technic_wrought_iron_dust.png new file mode 100644 index 0000000000000000000000000000000000000000..d890e73d7dd556a7ef5ed18109cfca7dd95f194d GIT binary patch literal 1202 zcmV;j1Wo&iP)(I<`7dqTK2fPu*tv5jtE;OlEG+z#B*`Z?Z{D1Fm0H@%UK|-20pQ}riyu3V zb0Q2weBUREB5Ji7j^n(yef##iy}iA!zlwpEPT=z8%T~Q!|H|{cPnA+4j$@>hgkgwM ziXaH+?(SBVN=4M`^@Bo)AIs(Prgim~5ucctcrA|OhOX=TEXxu?2&9zcaygVzJbLtq zEXx2ysZ>(cYW0W^qP%zS-sYV0Er#I%(1bEVW> z!!V+$si_wYjEszM`t)grhK7DC6bf&9o=2Ldtgfz7C=@UZgE)?{EDI?m3kwTamPNDK zq_eY=dcBV4d3c`3y?gfna2$suNl4RFJxk@gW52etu7+`#S{MO3K z$^qZ^0f^(6TrP){l18I}rfE2i1AtNr-}h;^+ayUsKA)%EZqshJiJ}MqDJ7bwt$zuI zVZ1p#Jw3d8_wHY3W@diw>+9P{K#Y!#UUyx$uUf70>@vRZ(`vP_Z5yQ&N~w(|R7w$s zAz>H-P%4!Of&g9D34(xny^f}7*tU)1I5eBhb<=8XZA~;9jq5jV+~_w31_s`BUAH$3 z!}pUUp;#;;giv#HbD~%*ZoDFjA`HVo2!T=xfL5!8<2Zz2$o%{~N-4H&+lK49v|25q zC_)H9qtT$Fqk|v_SYBQhnx_3?7{)g*G+|FqPqDYR_roZPKC*3l-`w1s(bd&OtyZH@ zC}3F@K@gD7=aEtp1OZY?Y};miH?-Sr0CKq;4<00qa>ttDm zQi?{S!R+iTmStg@CP|Wf9mnx!Q51DfPEMZr<4A70iqD-p$Jw)IpF0~I96V4emD-Do zi}Sm7?Ft?~e0V4b0wandy1ToZ_wV1o3lyc4)oa(TH37Am&K6s2vBiJJ@AL2vVz0C5 QO8@`>07*qoM6N<$f?i}l%m4rY literal 0 HcmV?d00001 diff --git a/mods/technic/technic/tools/cans.lua b/mods/technic/technic/tools/cans.lua index 737443e..f1a821b 100644 --- a/mods/technic/technic/tools/cans.lua +++ b/mods/technic/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/mods/technic/technic/tools/mining_lasers.lua b/mods/technic/technic/tools/mining_lasers.lua index e06c7bf..8f32a5a 100644 --- a/mods/technic/technic/tools/mining_lasers.lua +++ b/mods/technic/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'}, } }) @@ -107,9 +107,9 @@ local function laser_nodes(pos, dir, player, range) local t_dir = get_used_dir(dir) local dir_typ = t_dir[1] if t_dir[3] == "+" then - f_tab = {0, range} + f_tab = {1, range} else - f_tab = {-range,0} + f_tab = {-range, -1} end local d_ch = t_dir[2] if dir_typ == "x" then diff --git a/mods/technic/technic_chests/copper_chest.lua b/mods/technic/technic_chests/copper_chest.lua index a2a5a28..21f0563 100644 --- a/mods/technic/technic_chests/copper_chest.lua +++ b/mods/technic/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/mods/technic/technic_chests/depends.txt b/mods/technic/technic_chests/depends.txt index 8009e56..fc0492e 100644 --- a/mods/technic/technic_chests/depends.txt +++ b/mods/technic/technic_chests/depends.txt @@ -1,5 +1,6 @@ default technic +technic_worldgen moreores pipeworks intllib? diff --git a/mods/technic/technic_chests/gold_chest.lua b/mods/technic/technic_chests/gold_chest.lua index d173fde..941834d 100644 --- a/mods/technic/technic_chests/gold_chest.lua +++ b/mods/technic/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/mods/technic/technic_chests/iron_chest.lua b/mods/technic/technic_chests/iron_chest.lua index c21fcfb..a1f5c63 100644 --- a/mods/technic/technic_chests/iron_chest.lua +++ b/mods/technic/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/mods/technic/technic_chests/mithril_chest.lua b/mods/technic/technic_chests/mithril_chest.lua index b39fc9d..f5aa986 100644 --- a/mods/technic/technic_chests/mithril_chest.lua +++ b/mods/technic/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/mods/technic/technic_chests/silver_chest.lua b/mods/technic/technic_chests/silver_chest.lua index 9c3453a..75b33f8 100644 --- a/mods/technic/technic_chests/silver_chest.lua +++ b/mods/technic/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/mods/technic/technic_worldgen/crafts.lua b/mods/technic/technic_worldgen/crafts.lua index fc593a6..e2d5236 100644 --- a/mods/technic/technic_worldgen/crafts.lua +++ b/mods/technic/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/mods/technic/technic_worldgen/locale/de.txt b/mods/technic/technic_worldgen/locale/de.txt index 60f3862..1dacb41 100644 --- a/mods/technic/technic_worldgen/locale/de.txt +++ b/mods/technic/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/mods/technic/technic_worldgen/locale/template.txt b/mods/technic/technic_worldgen/locale/template.txt index f1da697..a4a6e4d 100644 --- a/mods/technic/technic_worldgen/locale/template.txt +++ b/mods/technic/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/mods/technic/technic_worldgen/nodes.lua b/mods/technic/technic_worldgen/nodes.lua index 07ec4af..12637f7 100644 --- a/mods/technic/technic_worldgen/nodes.lua +++ b/mods/technic/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/mods/technic/technic_worldgen/textures/technic_carbon_steel_block.png b/mods/technic/technic_worldgen/textures/technic_carbon_steel_block.png new file mode 100644 index 0000000000000000000000000000000000000000..f3cfdc1d234b67933614e556d204cfb057f8d8fa GIT binary patch literal 606 zcmV-k0-^nhP)8nu6on73NQ$EMW64Q0_yw|L=+f?eq&!ETtgAZ|aDYrH-~^UU$+9I<6gvpXnGf!{ zA3pZ{{OfwX03f1yp7VS?j)QYn2x;xeJ`+M%t#SaIh<^O|dAYQ!Rc1`HUT?hjQ50Eg zrIf~;ilQ8b8vp<=FMp`-yJ5J!zWxm%q-haCh@uF9loEi}skPRaX20J7m?p>by!3v0 zdioBa>r9@nmwO?EB+;C60Cl~s>uuYfowL-orzqmfVo{V`XX025!!=3t!p0c$-X9Kc zQpQ@Rlq4%-nh*j2YwglluQ!LoTav68W7b+Ck}_5*anAB_yj9f$V+?>0LdrFO^Z8iU zTL9xY0)a7BmUm6_K@@SVQ|~A5C#90U?>H9#h@!*cEsoVRxhz}bGepF#9phMy74bbe&m_Ip@mq?*08AfMK`^ zA(cv$(lpP$EbpaM){a_d0E{`!^Bl)<2%#t{Yi(8CFLD5ol!}PjwuxgUgaD9b1rc2? zEn`dwc{+V8Rbx(^3qH>?fQ77W&r-(Lj*L;7=3myoh`paENme0*#r(pjR5A?xVy5d% zU2l)a!*2IG%Ze!C+?XSP$H#BWGoQ*U=bR8?*{Q0Bs(J_^^nJ_YIN9%ajFI<~wIdNl sQ3SAI=(Wze?##K+I&IsN)~QnZKR=)*7p#um?*IS*07*qoM6N<$f;rV51poj5 literal 0 HcmV?d00001 diff --git a/mods/technic/technic_worldgen/textures/technic_carbon_steel_ingot.png b/mods/technic/technic_worldgen/textures/technic_carbon_steel_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..0d450663425a5e12c8c7ffa243a10ba35f592806 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkQ1F$f zi(`mI@7+nd>kc`HxcS#NW!`X-Ws*7VAoyhRUB*6DM}sA+82cSUeLg8jI%_2`1}OL} z|9pgd@|G<+4gPiC=M|rAeeW+LePp%yNRW#XSrTX*YVSWqx6^>mVnhYQQvvVnyefjNNv;VW2 zR#(&4szleyIz`WCeWDy2nG^Q=Gp_M?-J}x9B)}5OutY>`Ta(V@mc;XM9+!2$|DI~I z|HeALeLFVdQ I&MBb@06GqR%K!iX literal 0 HcmV?d00001 diff --git a/mods/technic/technic_worldgen/textures/technic_cast_iron_block.png b/mods/technic/technic_worldgen/textures/technic_cast_iron_block.png new file mode 100644 index 0000000000000000000000000000000000000000..2df61e5278a19505c67115587d89722be83d0c5b GIT binary patch literal 606 zcmV-k0-^nhP)CzgU_G8b=@fpGi$3XyIR+UIdE>2 zQd?W6>E$@K006wa{N%1Xjbppt|MK3)apApZ4gg500fb@d+-Pn6{QL-DS!R)@m&>x; z-+u*Q?IB4nHb3vZF-Z_e0A+bwmbXpw?%crE)=SCuyQfnR0^CYIJFNzx?0w9FiqMy%iWqAu= zng+lVQJ!BPkFP{5j7gWpEsN7S?)!5P2ms7MRqd4u=h-F64*!Rl#XOHnMbp$BkFP~> zY*vtbN<zm_s|Ziu1`fVK6yu1Xp2eVSf6Hx|Xs1_uBuWth2XYNbLU6o5G1F>}|Qh)7Cv zI{n?G*49EOv92qCI4%G*&AXJ^xt=J9qWpvUN8@F2Y)s<4-^g$Mw2p_N*~ql*p)79? zhd)nGKjL^71X5UA0l2&SvW3~qvaFovNeC51h4;QFZng(@-AO1FK0iMa(YnslG%z!> sAfjPtq9|{gcOjH9Y17okq*_P+05!iO`;^}0m;e9(07*qoM6N<$g8C{Od;kCd literal 0 HcmV?d00001 diff --git a/mods/technic/technic_worldgen/textures/technic_cast_iron_ingot.png b/mods/technic/technic_worldgen/textures/technic_cast_iron_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..692fff8c8596f60deb2d8a43da9ae60b4d539f8d GIT binary patch literal 315 zcmV-B0mS}^P)@k~^xxKmbKg;$V@&&MK{q8?b!fD$+mPhu}J75Zs4R zu(GidQ}~FDg^G=0{LI98l_N=v3-C4rcjlbi419m2JeYoeZ_4hSPvGN`0`NRtSJ3Iy zGfY7s<-uru&vdR^DHS<+F#q_SNU1Bk-I{Lq#}WC}*Gf^O)RoC(i09Ra<2e8VKK(3e7|WI z7K@O}k}@P)AnBfFYGm)=?Bo6(qbTiU<`f-&x?+l)oNEO_Wu5UyWIc~ z(QzE7(`j8-YpoDsU03$My!UyY1Bi*}?d@%vrYy_)zCWMO`@Tm}6lRPuWmzuE0sz40 z=OVBE|&`c=UiNt<-YH)ude{caXg()fzNxd zl#1gRK+`l$(+tC4ttDejpaf8s^ z^ZDGitx}3HX00V6A%v82+qU?Azt?rm7z4mL57Phs{+gx%u&%53o-tNcRo8Vy6l<-W zbIv&_<@I_EqN6Bk+crrO=Uh<~_+La6TWixaz2EO$*VT0$_@tD1p7(wK{QS%qyWMU? zq_v*snE-TMw{2ThRej%&;~2<7=llB`z_KjCgOrl?eXpu2Ns@J4vn&H(j5&@YNfPgU zS(et?x~?CWq$Ej*$QYBRDd!wOQ4~ZpO%r2G2=V*-8=%G*&Ut(sM*smBh9SHV5#@RQ zNd4j1IY&w)r3^Bj^H$FXUepP!$PkB_1#;y8}`z6bE~^77aN;OXgU+cwU5 z*i+YaIN&r*ahj%=%O&I=#6(fV7@Oxg%d%k@IOkexV~o~XO8F1_-zXwu^I7fy0000< KMNUMnLSTZa5)={u literal 0 HcmV?d00001 diff --git a/mods/technic/technic_worldgen/textures/technic_wrought_iron_ingot.png b/mods/technic/technic_worldgen/textures/technic_wrought_iron_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e6d1e2cd3aac3397d375f1b21dea63172ed4ed GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkQ1H5^ zi(`mI@7+ned0PwwSlKO%!XM7zThYYy;=o$PCsGrbnS_{(gk0F&JZ7ACP3PoW*HHcN z_S~B(5C13kSgu-SHSgI${es(O4Bu+m6}prznb;b}GbNvSILEp)QNpgPNxLF;pRn%f zLl%8cD&_X93%7qTHzQJP%QX(g7rXcx#2bqHmSuWOYO(0s@A7(A(6puEk=dGEN*|h* zWin*k7CX>=t<*J}w?TlZVclz+H>|bym6v`If3+)ZmfD)F`*t_YpTo8EisI6gdFlER pZ4br%NG`oHG4VxJYD@<);T3K0RWS+bD97E literal 0 HcmV?d00001 diff --git a/mods/technic/wrench/depends.txt b/mods/technic/wrench/depends.txt index 0905917..4d126c6 100644 --- a/mods/technic/wrench/depends.txt +++ b/mods/technic/wrench/depends.txt @@ -1,5 +1,6 @@ default technic technic_chests +technic_worldgen intllib? diff --git a/mods/technic/wrench/init.lua b/mods/technic/wrench/init.lua index 500f8ac..f0a0e00 100644 --- a/mods/technic/wrench/init.lua +++ b/mods/technic/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", ""}, }, }) diff --git a/mods/unified_inventory/.gitignore b/mods/unified_inventory/.gitignore deleted file mode 100644 index 5236e1e..0000000 --- a/mods/unified_inventory/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ - diff --git a/mods/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua index 4238eca..335af7a 100644 --- a/mods/unified_inventory/internal.lua +++ b/mods/unified_inventory/internal.lua @@ -144,3 +144,48 @@ function unified_inventory.items_in_group(groups) end return items end + +function unified_inventory.sort_inventory(inv) + local inlist = inv:get_list("main") + local typecnt = {} + local typekeys = {} + for _, st in ipairs(inlist) do + if not st:is_empty() then + local n = st:get_name() + local w = st:get_wear() + local m = st:get_metadata() + local k = string.format("%s %05d %s", n, w, m) + if not typecnt[k] then + typecnt[k] = { + name = n, + wear = w, + metadata = m, + stack_max = st:get_stack_max(), + count = 0, + } + table.insert(typekeys, k) + end + typecnt[k].count = typecnt[k].count + st:get_count() + end + end + table.sort(typekeys) + local outlist = {} + for _, k in ipairs(typekeys) do + local tc = typecnt[k] + while tc.count > 0 do + local c = math.min(tc.count, tc.stack_max) + table.insert(outlist, ItemStack({ + name = tc.name, + wear = tc.wear, + metadata = tc.metadata, + count = c, + })) + tc.count = tc.count - c + end + end + if #outlist > #inlist then return end + while #outlist < #inlist do + table.insert(outlist, ItemStack(nil)) + end + inv:set_list("main", outlist) +end diff --git a/mods/xban2/init.lua b/mods/xban2/init.lua index 5bdb571..8798a6a 100644 --- a/mods/xban2/init.lua +++ b/mods/xban2/init.lua @@ -235,7 +235,7 @@ minetest.register_chatcommand("xban_record", { end if e.last_pos then minetest.chat_send_player(name, - ("[%s]: User was last seen at %s"):format( + ("User was last seen at %s"):format( minetest.pos_to_string(e.last_pos))) end end,