Slow down arrows in liquids

This is a rought first implementation, very basic.
This commit is contained in:
Wuzzy 2018-05-08 00:02:07 +02:00
parent 32f612469f
commit fb8c5300cd
1 changed files with 15 additions and 0 deletions

View File

@ -135,6 +135,21 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
minetest.add_item(self._lastpos, 'mcl_bows:arrow')
end
self.object:remove()
elseif (def and def.liquidtype ~= "none") then
-- Slow down arrow in liquids
local v = def.liquid_viscosity
if not v then
v = 0
end
local vpenalty = math.max(0.1, 0.98 - 0.1 * v)
local vel = self.object:get_velocity()
if math.abs(vel.x) > 0.001 then
vel.x = vel.x * vpenalty
end
if math.abs(vel.z) > 0.001 then
vel.z = vel.z * vpenalty
end
self.object:set_velocity(vel)
end
end