Give arrows a maximum lifetime to prevent them from getting stuck in mid-air forever

This commit is contained in:
teknomunk 2024-08-31 10:09:20 -05:00
parent 236364f285
commit 4f25f6f58a

View file

@ -124,7 +124,7 @@ local arrow_entity = {
_fire_damage_resistant = true,
_save_fields = {
"last_pos", "startpos", "damage", "is_critical", "stuck", "stuckin", "stuckin_player",
"last_pos", "startpos", "damage", "is_critical", "stuck", "stuckin", "stuckin_player", "time_in_air",
},
_startpos=nil,
@ -307,6 +307,12 @@ local arrow_entity = {
self._time_in_air = self._time_in_air + dtime
-- Give the arrows a maximum flight time
if self._time_in_air > ARROW_TIMEOUT then
self._removed = true
self.object:remove()
end
local pos = self.object:get_pos()
--local dpos = vector.round(vector.new(pos)) -- digital pos
--local node = minetest.get_node(dpos)