Statically store always_collect field of __builtin:item
authorPerttu Ahola <celeron55@gmail.com>
Sun, 9 Sep 2012 18:29:44 +0000 (21:29 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Sun, 9 Sep 2012 20:14:41 +0000 (23:14 +0300)
builtin/item_entity.lua

index 2d763d50bc77fbaf6c7916171034addb1d0f7b72..2b12764f18dd455fdcd19653fa6feda8bf4a1873 100644 (file)
@@ -57,11 +57,23 @@ minetest.register_entity("__builtin:item", {
        end,
 
        get_staticdata = function(self)
-               return self.itemstring
+               --return self.itemstring
+               return minetest.serialize({
+                       itemstring = self.itemstring,
+                       always_collect = self.always_collect,
+               })
        end,
 
        on_activate = function(self, staticdata)
-               self.itemstring = staticdata
+               if string.sub(staticdata, 1, string.len("return")) == "return" then
+                       local data = minetest.deserialize(staticdata)
+                       if data and type(data) == "table" then
+                               self.itemstring = data.itemstring
+                               self.always_collect = data.always_collect
+                       end
+               else
+                       self.itemstring = staticdata
+               end
                self.object:set_armor_groups({immortal=1})
                self.object:setvelocity({x=0, y=2, z=0})
                self.object:setacceleration({x=0, y=-10, z=0})