+function itemframe.punch(pos, node, puncher)
+ local meta = minetest.get_meta(pos)
+ local player = puncher:get_player_name()
+ local owner = meta:get_string("owner")
+
+ if player ~= owner then return end
+ drop_item(pos, node)
+end
+
+function itemframe.dig(pos, player)
+ local meta = minetest.get_meta(pos)
+ local pname = player:get_player_name()
+ local owner = meta:get_string("owner")
+
+ return player and pname == owner
+end
+
+xdecor.register("itemframe", {
+ description = "Item Frame",
+ groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
+ sounds = default.node_sound_wood_defaults(),
+ on_rotate = screwdriver.disallow,
+ sunlight_propagates = true,
+ inventory_image = "xdecor_itemframe.png",
+ node_box = xdecor.nodebox.slab_z(0.9375),
+ tiles = {"xdecor_wood.png", "xdecor_wood.png", "xdecor_wood.png",
+ "xdecor_wood.png", "xdecor_wood.png", "xdecor_itemframe.png"},
+ after_place_node = itemframe.after_place,
+ on_timer = itemframe.timer,
+ on_rightclick = itemframe.rightclick,
+ on_punch = itemframe.punch,
+ can_dig = itemframe.dig,
+ after_destruct = remove_item
+})