Fix flammable item entities crashing (#2659)
authorsfan5 <sfan5@live.de>
Fri, 24 Apr 2020 19:12:40 +0000 (21:12 +0200)
committerGitHub <noreply@github.com>
Fri, 24 Apr 2020 19:12:40 +0000 (21:12 +0200)
mods/default/item_entity.lua

index 8da3ee686dd7015a5da78e30cd149a2043a2e356..d9bf7b19680ea6ed90aaf991bc380d60be10447f 100644 (file)
@@ -15,8 +15,8 @@ local item = {
 
        burn_up = function(self)
                -- disappear in a smoke puff
-               self.object:remove()
                local p = self.object:get_pos()
+               self.object:remove()
                minetest.sound_play("default_item_smoke", {
                        pos = p,
                        max_hear_distance = 8,
@@ -43,12 +43,16 @@ local item = {
                builtin_item.on_step(self, dtime, ...)
 
                if self.flammable then
-                       -- flammable, check for igniters
+                       -- flammable, check for igniters every 10 s
                        self.ignite_timer = (self.ignite_timer or 0) + dtime
                        if self.ignite_timer > 10 then
                                self.ignite_timer = 0
 
-                               local node = minetest.get_node_or_nil(self.object:get_pos())
+                               local pos = self.object:get_pos()
+                               if pos == nil then
+                                       return -- object already deleted
+                               end
+                               local node = minetest.get_node_or_nil(pos)
                                if not node then
                                        return
                                end