From f50cf4d9889ecc879bce0217160a98344f29f0a8 Mon Sep 17 00:00:00 2001 From: cale Date: Tue, 19 Apr 2016 17:53:42 +0200 Subject: [PATCH] updated furnace --- mods/furnace/init.lua | 67 +++++++++++++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 18 deletions(-) diff --git a/mods/furnace/init.lua b/mods/furnace/init.lua index 3234836..fd2e2d9 100644 --- a/mods/furnace/init.lua +++ b/mods/furnace/init.lua @@ -97,6 +97,21 @@ minetest.register_node("furnace:pattern_rod", { inv:set_size("main", 8*4) end, after_dig_node = default.drop_items, + on_punch = function(pos, node, player, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for i = 1, inv:get_size("main") do + local stack = inv:get_stack("main", i) + if not stack:is_empty() then + local p = { x = pos.x + math.random(0, 5)/5 - 0.5, + y = pos.y+1, + z = pos.z + math.random(0, 5)/5 - 0.5 + } + minetest.add_item(p, stack) + end + end + minetest.set_node(pos, {name="furnace:pattern_blade"}) + end, }) minetest.register_node("furnace:pattern_blade", { @@ -111,6 +126,24 @@ minetest.register_node("furnace:pattern_blade", { inv:set_size("main", 8*4) end, after_dig_node = default.drop_items, + on_punch = function(pos, node, player, pointed_thing) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for i = 1, inv:get_size("main") do + local stack = inv:get_stack("main", i) + if not stack:is_empty() then + local p = { x = pos.x + math.random(0, 5)/5 - 0.5, + y = pos.y+1, + z = pos.z + math.random(0, 5)/5 - 0.5 + } + minetest.add_item(p, stack) + end + end + + minetest.set_node(pos, {name="furnace:pattern_plate"}) + end, + drop = "furnace:pattern_rod", }) minetest.register_node("furnace:pattern_plate", { @@ -125,6 +158,22 @@ minetest.register_node("furnace:pattern_plate", { inv:set_size("main", 8*4) end, after_dig_node = default.drop_items, + on_punch = function(pos, node, player, pointed_thing) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for i = 1, inv:get_size("main") do + local stack = inv:get_stack("main", i) + if not stack:is_empty() then + local p = { x = pos.x + math.random(0, 5)/5 - 0.5, + y = pos.y+1, + z = pos.z + math.random(0, 5)/5 - 0.5 + } + minetest.add_item(p, stack) + end + end + minetest.set_node(pos, {name="furnace:pattern_rod"}) + end, + drop = "furnace:pattern_rod", }) minetest.register_craftitem("furnace:iron_rod", { @@ -198,24 +247,6 @@ minetest.register_craft({ } }) -minetest.register_craft({ - output = "furnace:pattern_blade", - recipe = { - {"default:stonebrick", "default:stonebrick", "default:stonebrick"}, - {"default:stonebrick", "default:stonebrick", "default:stonebrick"}, - {"default:wood", "default:wood", "default:wood"}, - } -}) - -minetest.register_craft({ - output = "furnace:pattern_plate", - recipe = { - {"", "", ""}, - {"default:stonebrick", "default:stonebrick", "default:stonebrick"}, - {"default:wood", "default:wood", "default:wood"}, - } -}) - minetest.register_craft({ output = "furnace:iron_block", type = "shapeless",