X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=builtin%2Fgame%2Fitem_entity.lua;h=a66bf33d0e3935b58f70296bf7ea25f9556c5610;hb=29877dfb4588c9a7fa4fb6321f625bcd8e0bcd84;hp=190473ceb5dca2f76ed6b5929df7b8fa3abbdd06;hpb=2a7d01b833da7b93125ad31e787f3e2145a22ec5;p=oweals%2Fminetest.git diff --git a/builtin/game/item_entity.lua b/builtin/game/item_entity.lua index 190473ceb..a66bf33d0 100644 --- a/builtin/game/item_entity.lua +++ b/builtin/game/item_entity.lua @@ -31,6 +31,7 @@ core.register_entity(":__builtin:item", { spritediv = {x = 1, y = 1}, initial_sprite_basepos = {x = 0, y = 0}, is_visible = false, + infotext = "", }, itemstring = '', @@ -50,6 +51,7 @@ core.register_entity(":__builtin:item", { local c = s local itemtable = stack:to_table() local itemname = nil + local description = "" if itemtable then itemname = stack:to_table().name end @@ -58,6 +60,7 @@ core.register_entity(":__builtin:item", { if core.registered_items[itemname] then item_texture = core.registered_items[itemname].inventory_image item_type = core.registered_items[itemname].type + description = core.registered_items[itemname].description end local prop = { is_visible = true, @@ -66,6 +69,7 @@ core.register_entity(":__builtin:item", { visual_size = {x = s, y = s}, collisionbox = {-c, -c, -c, c, c, c}, automatic_rotate = math.pi * 0.5, + infotext = description, } self.object:set_properties(prop) end, @@ -74,7 +78,8 @@ core.register_entity(":__builtin:item", { return core.serialize({ itemstring = self.itemstring, always_collect = self.always_collect, - age = self.age + age = self.age, + dropped_by = self.dropped_by }) end, @@ -89,6 +94,7 @@ core.register_entity(":__builtin:item", { else self.age = dtime_s end + self.dropped_by = data.dropped_by end else self.itemstring = staticdata @@ -200,9 +206,10 @@ core.register_entity(":__builtin:item", { end, on_punch = function(self, hitter) - if self.itemstring ~= '' then - local left = hitter:get_inventory():add_item("main", self.itemstring) - if not left:is_empty() then + local inv = hitter:get_inventory() + if inv and self.itemstring ~= '' then + local left = inv:add_item("main", self.itemstring) + if left and not left:is_empty() then self.itemstring = left:to_string() return end