else
minetest.chat_send_player(clicker:get_player_name(),
"No room in your inventory to add a bucket of water.")
- return
+ return itemstack
end
else
itemstack:replace("bucket:bucket_water")
else
minetest.chat_send_player(clicker:get_player_name(),
"No room in your inventory to add a bowl of soup.")
- return
+ return itemstack
end
else
itemstack:replace("xdecor:bowl_soup 1")
end
minetest.set_node(pos, {name="xdecor:cauldron_empty", param2=node.param2})
- return itemstack
end
+ return itemstack
end
xdecor.register("cauldron_empty", {
local meta = minetest.get_meta(pos)
local player = clicker:get_player_name()
local owner = meta:get_string("owner")
- if player ~= owner or not itemstack then return end
+ if player ~= owner or not itemstack then
+ return itemstack
+ end
drop_item(pos, node)
local itemstring = itemstack:take_item():to_string()
inv:set_size("drop", 1)
end
-function mailbox.rightclick(pos, _, clicker)
+function mailbox.rightclick(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local player = clicker:get_player_name()
local owner = meta:get_string("owner")
else
minetest.show_formspec(player, "xdecor:mailbox", mailbox:formspec(pos, owner, 0))
end
+ return itemstack
end
function mailbox.put(pos, listname, _, stack, player)
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
on_rotate = screwdriver.rotate_simple,
- on_rightclick = function(pos, node, clicker)
- if not doors.get then return end
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+ if not doors.get then
+ return itemstack
+ end
local minp = {x=pos.x-2, y=pos.y-1, z=pos.z-2}
local maxp = {x=pos.x+2, y=pos.y+1, z=pos.z+2}
local doors = minetest.find_nodes_in_area(minp, maxp, "group:door")
for i = 1, #doors do
door_toggle(pos, doors[i], clicker)
end
+ return itemstack
end
})
{11, 0, 3, 2, 6, 2}, {3, 6, 3, 10, 2, 8}
}),
can_dig = xdecor.sit_dig,
- on_rightclick = function(pos, node, clicker, _, pointed_thing)
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
pos.y = pos.y + 0 -- Sitting position.
xdecor.sit(pos, node, clicker, pointed_thing)
+ return itemstack
end
})
paramtype2 = "wallmounted",
groups = {dig_immediate=3, flammable=3},
selection_box = {type="wallmounted"},
- on_rightclick = function(pos, node)
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name="xdecor:curtain_open_"..c, param2=node.param2})
+ return itemstack
end
})
groups = {dig_immediate=3, flammable=3, not_in_creative_inventory=1},
selection_box = {type="wallmounted"},
drop = "xdecor:curtain_"..c,
- on_rightclick = function(pos, node)
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
minetest.set_node(pos, {name="xdecor:curtain_"..c, param2=node.param2})
+ return itemstack
end
})
on_place = minetest.rotate_node,
node_box = xdecor.nodebox.slab_y(0.5),
can_dig = xdecor.sit_dig,
- on_rightclick = function(pos, node, clicker, _, pointed_thing)
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
pos.y = pos.y + 0 -- Sitting position.
xdecor.sit(pos, node, clicker, pointed_thing)
+ return itemstack
end
})
end
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
- return itemstack
end
+ return itemstack
end
})
local pos = pointed_thing.above
local oldnode = minetest.get_node(pos)
local stackname = itemstack:get_name()
- if minetest.is_protected(pos, placer:get_player_name()) then return end
+ if minetest.is_protected(pos, placer:get_player_name()) then
+ return itemstack
+ end
while oldnode.name == "air" and not itemstack:is_empty() do
local newnode = {name = stackname, param1 = 0}