entity cramming: clean up check logic

This commit is contained in:
cora 2022-05-23 16:50:33 +02:00
parent fb4f21cba0
commit 87f50d6423
1 changed files with 10 additions and 9 deletions

View File

@ -2975,20 +2975,21 @@ local cramming_damage = 3
local function check_entity_cramming(self) local function check_entity_cramming(self)
local p = self.object:get_pos() local p = self.object:get_pos()
local oo = minetest.get_objects_inside_radius(p,1) local oo = minetest.get_objects_inside_radius(p,1)
local clear = false local clear = #oo < entity_cramming_max
if #oo < entity_cramming_max then clear = true end
local ncram = {} local ncram = {}
for _,o in pairs(oo) do for _,o in pairs(oo) do
local l = o:get_luaentity() local l = o:get_luaentity()
if l and clear then if l then
l.cram = nil if clear then
elseif l and l.cram == nil and not self.child then l.cram = nil
table.insert(ncram,l) elseif l.cram == nil and not self.child then
elseif not clear and l and l.cram then table.insert(ncram,l)
damage_mob(l,"cramming",cramming_damage) elseif l.cram then
damage_mob(l,"cramming",cramming_damage)
end
end end
end end
for i,l in ipairs(ncram) do for i,l in pairs(ncram) do
if i > entity_cramming_max then if i > entity_cramming_max then
l.cram = true l.cram = true
else else