Use replacements in furnace and replace lava bucket with empty bucket when used as...
authorhdastwb <hdastwb@hdastwb.heliohost.org>
Sun, 6 Jan 2013 01:57:05 +0000 (20:57 -0500)
committerPilzAdam <pilzadam@minetest.net>
Tue, 19 Mar 2013 18:30:06 +0000 (19:30 +0100)
mods/bucket/init.lua
mods/default/init.lua

index d725466ba6795d2e0e955b7f1c64c3e5a75dc55f..7366bbf33d29fda16b30d845317c7db16979c250 100644 (file)
@@ -100,4 +100,5 @@ minetest.register_craft({
        type = "fuel",
        recipe = "bucket:bucket_lava",
        burntime = 60,
+       replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}},
 })
index e4a76b466133b48d4b1e04cc65612bbca7979a77..514feb8d28c44c71eb41bc7589bc953c1fa0f0aa 100644 (file)
@@ -1632,9 +1632,10 @@ minetest.register_abm({
 
                local srclist = inv:get_list("src")
                local cooked = nil
+               local aftercooked
                
                if srclist then
-                       cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
+                       cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
                end
                
                local was_active = false
@@ -1649,9 +1650,7 @@ minetest.register_abm({
                                        -- Put result in "dst" list
                                        inv:add_item("dst", cooked.item)
                                        -- take stuff from "src" list
-                                       srcstack = inv:get_stack("src", 1)
-                                       srcstack:take_item()
-                                       inv:set_stack("src", 1, srcstack)
+                                       inv:set_stack("src", 1, aftercooked.items[1])
                                else
                                        print("Could not insert '"..cooked.item:to_string().."'")
                                end
@@ -1676,6 +1675,7 @@ minetest.register_abm({
                end
 
                local fuel = nil
+               local afterfuel
                local cooked = nil
                local fuellist = inv:get_list("fuel")
                local srclist = inv:get_list("src")
@@ -1684,7 +1684,7 @@ minetest.register_abm({
                        cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
                end
                if fuellist then
-                       fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
+                       fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
                end
 
                if fuel.time <= 0 then
@@ -1706,9 +1706,7 @@ minetest.register_abm({
                meta:set_string("fuel_totaltime", fuel.time)
                meta:set_string("fuel_time", 0)
                
-               local stack = inv:get_stack("fuel", 1)
-               stack:take_item()
-               inv:set_stack("fuel", 1, stack)
+               inv:set_stack("fuel", 1, afterfuel.items[1])
        end,
 })