X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=rope.lua;h=3dbbede4ee1932bf49d09bff056e387fff92182c;hb=beeda8cb9becef5811808ddaa0d2525a147076cb;hp=f0fa5f8c9ff3675ae1dba6b3e9f501e851a935a2;hpb=e096e19e4e88fd5267361175333c94025120476d;p=xdecor.git diff --git a/rope.lua b/rope.lua index f0fa5f8..3dbbede 100644 --- a/rope.lua +++ b/rope.lua @@ -3,17 +3,18 @@ local rope = {} -- Code by Mirko K. (modified by Temperest, Wulfsdad and kilbith) (License: GPL). minetest.register_on_punchnode(function(pos, oldnode, digger) if oldnode.name == "xdecor:rope" then - rope.remove(pos, oldnode, digger, "xdecor:rope") + rope:remove(pos, oldnode, digger, "xdecor:rope") end end) function rope.place(itemstack, placer, pointed_thing) if pointed_thing.type == "node" then - local under = pointed_thing.under - local above = pointed_thing.above - local pos = above + 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 itemstack + end while oldnode.name == "air" and not itemstack:is_empty() do local newnode = {name = stackname, param1 = 0} @@ -26,7 +27,7 @@ function rope.place(itemstack, placer, pointed_thing) return itemstack end -function rope.remove(pos, oldnode, digger, rope_name) +function rope:remove(pos, oldnode, digger, rope_name) local num = 0 local below = {x=pos.x, y=pos.y, z=pos.z} local digger_inv = digger:get_inventory() @@ -46,13 +47,10 @@ xdecor.register("rope", { drawtype = "plantlike", walkable = false, climbable = true, - groups = {dig_immediate=3, flammable=3}, + groups = {snappy=3, flammable=3}, tiles = {"xdecor_rope.png"}, inventory_image = "xdecor_rope_inv.png", wield_image = "xdecor_rope_inv.png", - selection_box = { - type = "fixed", - fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15} - }, + selection_box = xdecor.pixelbox(8, {{3, 0, 3, 2, 8, 2}}), on_place = rope.place })