3 -- Code by Mirko K. (modified by Temperest, Wulfsdad and kilbith) (License: GPL).
4 minetest.register_on_punchnode(function(pos, oldnode, digger)
5 if oldnode.name == "xdecor:rope" then
6 rope:remove(pos, oldnode, digger, "xdecor:rope")
10 function rope.place(itemstack, placer, pointed_thing)
11 if pointed_thing.type == "node" then
12 local under = pointed_thing.under
13 local above = pointed_thing.above
15 local oldnode = minetest.get_node(pos)
16 local stackname = itemstack:get_name()
17 if minetest.is_protected(pos, placer:get_player_name()) then return end
19 while oldnode.name == "air" and not itemstack:is_empty() do
20 local newnode = {name = stackname, param1 = 0}
21 minetest.set_node(pos, newnode)
24 oldnode = minetest.get_node(pos)
30 function rope:remove(pos, oldnode, digger, rope_name)
32 local below = {x=pos.x, y=pos.y, z=pos.z}
33 local digger_inv = digger:get_inventory()
35 while minetest.get_node(below).name == rope_name do
36 minetest.remove_node(below)
40 if num == 0 then return end
41 digger_inv:add_item("main", rope_name.." "..num)
45 xdecor.register("rope", {
47 drawtype = "plantlike",
50 groups = {snappy=3, flammable=3},
51 tiles = {"xdecor_rope.png"},
52 inventory_image = "xdecor_rope_inv.png",
53 wield_image = "xdecor_rope_inv.png",
54 selection_box = xdecor.pixelbox(8, {{3, 0, 3, 2, 8, 2}}),