Dont allow to place not-fuel items in the fuel field in the furnace and dont allow to place any item in the dst field

This commit is contained in:
PilzAdam 2013-01-10 19:28:50 +01:00 committed by PilzAdam
parent 9ff8f8038e
commit 4c5cb106c3
1 changed files with 54 additions and 0 deletions

View File

@ -1491,6 +1491,33 @@ minetest.register_node("default:furnace", {
end end
return true return true
end, end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if listname == "fuel" then
if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then
return stack:get_count()
else
return 0
end
elseif listname == "src" then
return stack:get_count()
elseif listname == "dst" then
return 0
end
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local stack = ItemStack(minetest.env:get_meta(pos):get_inventory():get_stack(from_list, from_index))
if to_list == "fuel" then
if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then
return count
else
return 0
end
elseif to_list == "src" then
return count
elseif to_list == "dst" then
return 0
end
end,
}) })
minetest.register_node("default:furnace_active", { minetest.register_node("default:furnace_active", {
@ -1524,6 +1551,33 @@ minetest.register_node("default:furnace_active", {
end end
return true return true
end, end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if listname == "fuel" then
if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then
return stack:get_count()
else
return 0
end
elseif listname == "src" then
return stack:get_count()
elseif listname == "dst" then
return 0
end
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local stack = ItemStack(minetest.env:get_meta(pos):get_inventory():get_stack(from_list, from_index))
if to_list == "fuel" then
if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then
return count
else
return 0
end
elseif to_list == "src" then
return count
elseif to_list == "dst" then
return 0
end
end,
}) })
function hacky_swap_node(pos,name) function hacky_swap_node(pos,name)