From ebe96af1e7795c3ebe0254cd8f120d5bbd4affa4 Mon Sep 17 00:00:00 2001 From: Athozus Date: Wed, 2 Aug 2023 13:00:56 +0200 Subject: [PATCH] Add an animation to flaps Using minetest.after() function, a move of 1 each 50 milliseconds. --- lib_planes/utilities.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib_planes/utilities.lua b/lib_planes/utilities.lua index 851c927..3621e86 100644 --- a/lib_planes/utilities.lua +++ b/lib_planes/utilities.lua @@ -803,14 +803,24 @@ 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 - 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}) + for i = 0,flap_limit do + minetest.after(0.05*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 end function airutils.flap_off(self) self._wing_configuration = self._wing_angle_of_attack - 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}) + local flap_limit = 15 + if self._flap_limit then flap_limit = self._flap_limit end + for i = 0,flap_limit do + minetest.after(0.05*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 end function airutils.flap_operate(self, player)