Fix entity creating crash and restore 0.4 support

This commit is contained in:
Maksim
2020-01-16 10:53:37 +01:00
committed by Hugo Locurcio
parent 1990169c0a
commit 9425b8dcf5
3 changed files with 22 additions and 7 deletions

View File

@ -21,12 +21,13 @@ minetest.register_entity("gauges:hp_bar", {
on_step = function(self)
local player = self.wielder
local gauge = self.object
if not player or
not minetest.is_player(player) or
vector_distance(player:get_pos(), self.object:get_pos()) > 3
vector_distance(player:get_pos(), gauge:get_pos()) > 3
then
self.object:remove()
gauge:remove()
return
end
@ -34,7 +35,7 @@ minetest.register_entity("gauges:hp_bar", {
local breath = player:get_breath() <= 10 and player:get_breath() or 11
if self.hp ~= hp or self.breath ~= breath then
self.object:set_properties({
gauge:set_properties({
textures = {
"health_"..tostring(hp)..".png^"..
"breath_"..tostring(breath)..".png"
@ -47,10 +48,14 @@ minetest.register_entity("gauges:hp_bar", {
})
local function add_gauge(player)
local entity = minetest.add_entity(player:get_pos(), "gauges:hp_bar")
if player and minetest.is_player(player) then
local entity = minetest.add_entity(player:get_pos(), "gauges:hp_bar")
-- check for minetest_game 0.4.*
local height = minetest.get_modpath("player_api") and 19 or 9
entity:set_attach(player, "", {x=0, y=19, z=0}, {x=0, y=0, z=0})
entity:get_luaentity().wielder = player
entity:set_attach(player, "", {x=0, y=height, z=0}, {x=0, y=0, z=0})
entity:get_luaentity().wielder = player
end
end
minetest.register_on_joinplayer(function(player)