]> git.lizzy.rs Git - xdecor.git/commitdiff
Always return the ItemStack for on_rightclick and on_place to comply with the api.
authorTim <t4im@users.noreply.github.com>
Fri, 5 Aug 2016 19:33:53 +0000 (21:33 +0200)
committerTim <t4im@users.noreply.github.com>
Fri, 5 Aug 2016 22:06:47 +0000 (00:06 +0200)
cooking.lua
itemframe.lua
mailbox.lua
mechanisms.lua
nodes.lua
rope.lua

index 64c8f6c075e29d11e02652f6ba992f44c8c03ca9..46629ec756278760479c20308dbbeac85187941d 100644 (file)
@@ -52,7 +52,7 @@ function cauldron.filling(pos, node, clicker, itemstack)
                                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")
@@ -128,15 +128,15 @@ function cauldron.take_soup(pos, node, clicker, itemstack)
                        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", {
index 66d690cf43e01ad396f295f95e2ec8e776b47337..39d400a813617e9b90fb67d5dad35b1e42d393c8 100644 (file)
@@ -71,7 +71,9 @@ function itemframe.rightclick(pos, node, clicker, itemstack)
        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()
index fb7a3c83cc497d71b62998334931813ee0afb16c..ec1d874862a8aa257f1993d4b3c8bbc67dcef58e 100644 (file)
@@ -96,7 +96,7 @@ function mailbox.after_place_node(pos, placer)
        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")
@@ -106,6 +106,7 @@ function mailbox.rightclick(pos, _, clicker)
        else
                minetest.show_formspec(player, "xdecor:mailbox", mailbox:formspec(pos, owner, 0))
        end
+       return itemstack
 end
 
 function mailbox.put(pos, listname, _, stack, player)
index f7f79a3ef2e69bd09a4d9efd9f4b23d776f71bda..46863021f21ca59e39fed6256d9c45f3fbe6c108 100644 (file)
@@ -92,8 +92,10 @@ xdecor.register("lever_off", {
        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")
@@ -101,6 +103,7 @@ xdecor.register("lever_off", {
                for i = 1, #doors do
                        door_toggle(pos, doors[i], clicker)
                end
+               return itemstack
        end
 })
 
index d21584a5215cb9db19435d7aac06aa0f7ac33586..0e5bea2ad53f88bb1a6c31d8968494cf482cf914 100644 (file)
--- a/nodes.lua
+++ b/nodes.lua
@@ -141,9 +141,10 @@ xdecor.register("chair", {
                {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
 })
 
@@ -175,8 +176,9 @@ for _, c in pairs({"red"}) do  -- Add more curtains colors simply here.
                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
        })
 
@@ -188,8 +190,9 @@ for _, c in pairs({"red"}) do  -- Add more curtains colors simply here.
                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
        })
 
@@ -207,9 +210,10 @@ xdecor.register("cushion", {
        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
 })
 
@@ -372,8 +376,8 @@ xdecor.register("painting_1", {
                end
                if not minetest.setting_getbool("creative_mode") then
                        itemstack:take_item()
-                       return itemstack
                end
+               return itemstack
        end
 })
 
index 189f47617a7175e62f8939759100441e8ee762f0..3dbbede4ee1932bf49d09bff056e387fff92182c 100644 (file)
--- a/rope.lua
+++ b/rope.lua
@@ -12,7 +12,9 @@ function rope.place(itemstack, placer, pointed_thing)
                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}