1
0
Fork 0

Be more careful with possibly expired objects

mobs_head_rotation
cora 2022-06-04 16:33:18 +02:00
parent f1778d839d
commit ef093d0c00
2 changed files with 6 additions and 4 deletions

View File

@ -134,6 +134,7 @@ function mcl_burning.set_on_fire(obj, burn_time)
end end
function mcl_burning.extinguish(obj) function mcl_burning.extinguish(obj)
if not obj:get_pos() then return end
if mcl_burning.is_burning(obj) then if mcl_burning.is_burning(obj) then
local storage = mcl_burning.get_storage(obj) local storage = mcl_burning.get_storage(obj)
if obj:is_player() then if obj:is_player() then

View File

@ -19,15 +19,16 @@ local function dir_to_pitch(dir)
end end
local function damage_explosion(self, damagemulitplier) local function damage_explosion(self, damagemulitplier)
mcl_explosions.explode(self.object:get_pos(), 3, {}) local p = self.object:get_pos()
local objects = minetest.get_objects_inside_radius(self.object:get_pos(), 8) mcl_explosions.explode(p, 3, {})
local objects = minetest.get_objects_inside_radius(p, 8)
for _,obj in pairs(objects) do for _,obj in pairs(objects) do
if obj:is_player() then if obj:is_player() then
mcl_util.deal_damage(obj, damagemulitplier - vector.distance(self.object:get_pos(), obj:get_pos()), {type = "explosion"}) mcl_util.deal_damage(obj, damagemulitplier - vector.distance(p, obj:get_pos()), {type = "explosion"})
elseif obj:get_luaentity().is_mob then elseif obj:get_luaentity().is_mob then
obj:punch(self.object, 1.0, { obj:punch(self.object, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damagemulitplier - vector.distance(self.object:get_pos(), obj:get_pos())}, damage_groups={fleshy=damagemulitplier - vector.distance(p, obj:get_pos())},
}, self.object:get_velocity()) }, self.object:get_velocity())
end end
end end