]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/utility/furnace.lua
Fix furnace inv swap xp glitch
[Crafter.git] / mods / utility / furnace.lua
index 0bb719a0ffa1926778c7cd10f6f7d0ef5e387d3a..0086b88e0b8aa1c82f1d07b7b1f8d6f9825c31f1 100644 (file)
@@ -151,6 +151,9 @@ local function furnace_node_timer(pos, elapsed)
                                                inv:set_stack("src", 1, aftercooked.items[1])
                                                src_time = src_time - cooked.time
                                                update = true
+                                               local dir = vector.divide(minetest.facedir_to_dir(minetest.get_node(pos).param2),-1.95)
+                                               local newpos = vector.add(pos,dir)
+                                               minetest.throw_experience(newpos, 1)
                                        else
                                                dst_full = true
                                        end
@@ -342,6 +345,7 @@ minetest.register_node("utility:furnace", {
        allow_metadata_inventory_put = allow_metadata_inventory_put,
        allow_metadata_inventory_move = allow_metadata_inventory_move,
        allow_metadata_inventory_take = allow_metadata_inventory_take,
+       on_metadata_inventory_take = on_metadata_inventory_take,
 })
 
 minetest.register_node("utility:furnace_active", {
@@ -375,6 +379,7 @@ minetest.register_node("utility:furnace_active", {
        allow_metadata_inventory_put = allow_metadata_inventory_put,
        allow_metadata_inventory_move = allow_metadata_inventory_move,
        allow_metadata_inventory_take = allow_metadata_inventory_take,
+       on_metadata_inventory_take = on_metadata_inventory_take,
        on_destruct = function(pos)
                destroy_furnace(pos)
        end,