fixed flap animation for negative angles

This commit is contained in:
Alexsandro Percy 2023-08-03 20:16:57 -03:00
parent e837209990
commit 877f922145

View file

@ -803,24 +803,46 @@ function airutils.flap_on(self)
local flap_limit = 15
if self._flap_limit then flap_limit = self._flap_limit end
self._wing_configuration = self._wing_angle_of_attack + self._wing_angle_extra_flaps
if flap_limit >= 0 then
for i = 0,flap_limit do
minetest.after(0.05*i, function()
minetest.after(0.02*i, function()
self.object:set_bone_position("flap.l", {x=0, y=0, z=0}, {x=-i, y=0, z=0})
self.object:set_bone_position("flap.r", {x=0, y=0, z=0}, {x=-i, y=0, z=0})
end)
end
else
for i = flap_limit,0 do
minetest.after(0.02*-i, function()
self.object:set_bone_position("flap.l", {x=0, y=0, z=0}, {x=-i, y=0, z=0})
self.object:set_bone_position("flap.r", {x=0, y=0, z=0}, {x=-i, y=0, z=0})
end)
end
--self.object:set_bone_position("flap.l", {x=0, y=0, z=0}, {x=-flap_limit, y=0, z=0})
--self.object:set_bone_position("flap.r", {x=0, y=0, z=0}, {x=-flap_limit, y=0, z=0})
end
end
function airutils.flap_off(self)
self._wing_configuration = self._wing_angle_of_attack
local flap_limit = 15
if self._flap_limit then flap_limit = self._flap_limit end
if flap_limit >= 0 then
for i = 0,flap_limit do
minetest.after(0.05*i, function()
minetest.after(0.01*i, function()
self.object:set_bone_position("flap.l", {x=0, y=0, z=0}, {x=-flap_limit+i, y=0, z=0})
self.object:set_bone_position("flap.r", {x=0, y=0, z=0}, {x=-flap_limit+i, y=0, z=0})
end)
end
else
for i = flap_limit,0 do
minetest.after(0.01*-i, function()
self.object:set_bone_position("flap.l", {x=0, y=0, z=0}, {x=-flap_limit+i, y=0, z=0})
self.object:set_bone_position("flap.r", {x=0, y=0, z=0}, {x=-flap_limit+i, y=0, z=0})
end)
end
--self.object:set_bone_position("flap.l", {x=0, y=0, z=0}, {x=0, y=0, z=0})
--self.object:set_bone_position("flap.r", {x=0, y=0, z=0}, {x=0, y=0, z=0})
end
end
function airutils.flap_operate(self, player)