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
return true
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", {
@ -1524,6 +1551,33 @@ minetest.register_node("default:furnace_active", {
end
return true
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)