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,
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