Give arrows a maximum lifetime to prevent them from getting stuck in mid-air forever
This commit is contained in:
parent
f55f647f2e
commit
149e69452e
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue