Always return the ItemStack for on_rightclick to comply with the API.

This commit is contained in:
Tim
2016-07-31 01:17:23 +02:00
parent b33428b907
commit 337dc05e70
19 changed files with 78 additions and 40 deletions

View File

@ -29,6 +29,7 @@ minetest.register_node("computer:vanio", {
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:vanio_off"
minetest.set_node(pos, node)
return itemstack
end
})
@ -48,6 +49,7 @@ minetest.register_node("computer:vanio_off", {
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:vanio"
minetest.set_node(pos, node)
return itemstack
end
})
@ -168,6 +170,7 @@ minetest.register_node("computer:monitor", {
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:monitor_on"
minetest.set_node(pos, node)
return itemstack
end
})
@ -186,6 +189,7 @@ minetest.register_node("computer:monitor_on", {
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:monitor"
minetest.set_node(pos, node)
return itemstack
end
})
@ -294,12 +298,13 @@ minetest.register_node("computer:server", {
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:server_on"
minetest.set_node(pos, node)
return itemstack
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then
minetest.chat_send_player( placer:get_player_name(), "Not enough vertical space to place a server!" )
return
return itemstack
end
return minetest.item_place(itemstack, placer, pointed_thing)
end
@ -333,5 +338,6 @@ minetest.register_node("computer:server_on", {
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:server"
minetest.set_node(pos, node)
return itemstack
end
})

View File

@ -27,11 +27,12 @@ computer.register = function (name, def)
node_box = def.node_box,
selection_box = def.node_box,
on_rightclick = function (pos, node, clicker, itemstack)
if (def.on_turn_off) then
if (def.on_turn_off(pos, node, clicker, itemstack)) then return end
if def.on_turn_off and def.on_turn_off(pos, node, clicker, itemstack) then
return itemstack
end
node.name = OFFSTATE
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_node(OFFSTATE, {
@ -50,11 +51,12 @@ computer.register = function (name, def)
node_box = def.node_box_off or def.node_box,
selection_box = def.node_box_off or def.node_box,
on_rightclick = function (pos, node, clicker, itemstack)
if (def.on_turn_on) then
if (def.on_turn_on(pos, node, clicker, itemstack)) then return end
if def.on_turn_on and def.on_turn_on(pos, node, clicker, itemstack) then
return itemstack
end
node.name = ONSTATE
minetest.set_node(pos, node)
return itemstack
end,
drop = ONSTATE
})

View File

@ -276,7 +276,8 @@ minetest.register_node("computer:tetris_arcade", {
end
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then
minetest.chat_send_player(placer:get_player_name(), "No room for place the Arcade!")
return end
return itemstack
end
local dir = placer:get_look_dir()
local node = {name="computer:tetris_arcade", param1=0, param2 = minetest.dir_to_facedir(dir)}
minetest.set_node(pos, node)