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():get_name()
+ local itemstring = itemstack:take_item():to_string()
meta:set_string("item", itemstring)
update_item(pos, node)
function itemframe.dig(pos, player)
local meta = minetest.get_meta(pos)
- local pname = player:get_player_name()
+ local pname = player and player:get_player_name()
local owner = meta:get_string("owner")
- return player and pname == owner
+ return pname == owner
end
-minetest.register_alias("xdecor:frame", "xdecor:itemframe")
-
xdecor.register("itemframe", {
description = "Item Frame",
groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
physical = false,
textures = {"air"},
on_activate = function(self, staticdata)
+ local pos = self.object:getpos()
+ if minetest.get_node(pos).name ~= "xdecor:itemframe" then
+ self.object:remove()
+ end
+
if tmp.nodename and tmp.texture then
self.nodename = tmp.nodename
tmp.nodename = nil