Add: a way for death entity to delete its self

This commit is contained in:
Coder12a 2019-05-28 14:48:25 -05:00
parent 859e6312d1
commit e9671d9d2b

View File

@ -23,12 +23,14 @@ function death_timer.create_deathholder(player, name)
if player and obj then
local pos = player:get_pos()
player:set_attach(obj, "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
obj:get_luaentity().owner = name
obj:set_pos(pos)
player_objs[name] = obj
elseif player and not obj then
local pos = player:get_pos()
obj = minetest.add_entity(pos, "death_timer:death")
player:set_attach(obj, "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
obj:get_luaentity().owner = name
obj:set_pos(pos)
player_objs[name] = obj
end
@ -66,8 +68,20 @@ end)
minetest.register_entity("death_timer:death", {
is_visible = false,
on_step = function(self, dtime)
self.timer= self.timer + dtime
if self.timer >= 1 then
self.timer = 0
if not (self.owner and minetest.get_player_by_name(self.owner)) then
self.object:remove()
else
self.object:set_attach(minetest.get_player_by_name(self.owner), "", {x = 0,y = 0,z = 0}, {x = 0,y = 0,z = 0})
end
end
end,
on_activate = function(self, staticdata)
self.timer = 0
self.object:set_armor_groups({immortal = 1, ignore = 1, do_not_delete = 1})
end
})
@ -131,7 +145,9 @@ function death_timer.loop(name)
p.properties = nil
end
else
cloaking.unhide_player(name)
if minetest.get_player_by_name(name) then
cloaking.unhide_player(name)
end
end
p.time = nil