forked from MineClone5/MineClone5
Merge pull request 'Fix villagers/mobs despawning ( issue #26 )' (#29) from TioBlocos/MineClone5:fix/issue_26_villagers_despawning into master
Reviewed-on: MineClone5/MineClone5#29
This commit is contained in:
commit
15a60ae638
|
@ -821,9 +821,8 @@ function mobs.mob_step(self, dtime)
|
||||||
self.lifetimer = self.lifetimer - dtime
|
self.lifetimer = self.lifetimer - dtime
|
||||||
if self.lifetimer <= 0 then
|
if self.lifetimer <= 0 then
|
||||||
self.lifetimer = self.lifetimer_reset
|
self.lifetimer = self.lifetimer_reset
|
||||||
if not mobs.check_for_player_within_area(self, 64) then
|
if mobs.can_despawn(self) then
|
||||||
--print("removing in MAIN LOGIC!")
|
self.object:remove()
|
||||||
self.object:remove()
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,16 +5,18 @@ local minetest_settings = minetest.settings
|
||||||
-- CMI support check
|
-- CMI support check
|
||||||
local use_cmi = minetest.global_exists("cmi")
|
local use_cmi = minetest.global_exists("cmi")
|
||||||
|
|
||||||
|
mobs.can_despawn = function(self)
|
||||||
|
return (not self.tamed and not self.bred and not self.nametag and
|
||||||
|
not mobs.check_for_player_within_area(self, 64));
|
||||||
|
end
|
||||||
|
|
||||||
-- get entity staticdata
|
-- get entity staticdata
|
||||||
mobs.mob_staticdata = function(self)
|
mobs.mob_staticdata = function(self)
|
||||||
--despawn mechanism
|
--despawn mechanism
|
||||||
--don't despawned tamed or bred mobs
|
--don't despawned tamed or bred mobs
|
||||||
if not self.tamed and not self.bred then
|
if mobs.can_despawn(self) then
|
||||||
if not mobs.check_for_player_within_area(self, 64) then
|
self.object:remove()
|
||||||
--print("removing SERIALIZED!")
|
return
|
||||||
self.object:remove()
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self.remove_ok = true
|
self.remove_ok = true
|
||||||
|
|
Loading…
Reference in New Issue