diff --git a/lib_planes/custom_physics.lua b/lib_planes/custom_physics.lua index fba2bb3..a394f54 100755 --- a/lib_planes/custom_physics.lua +++ b/lib_planes/custom_physics.lua @@ -51,6 +51,7 @@ function airutils.physics(self) new_velocity = {x=new_velocity.x*friction, y=new_velocity.y, z=new_velocity.z*friction} + -- bounciness if self.springiness and self.springiness > 0 and self.buoyancy >= 1 then local vnew = vector.new(new_velocity) @@ -82,7 +83,10 @@ function airutils.physics(self) end --damage the plane if it have hard friction end - self.object:set_velocity(new_velocity) + --self.object:set_velocity(new_velocity) + local vel_sum = vector.subtract(new_velocity,vel) + self.object:add_velocity(vel_sum) + end end diff --git a/lib_planes/entities.lua b/lib_planes/entities.lua index cf2cacd..9c8e521 100644 --- a/lib_planes/entities.lua +++ b/lib_planes/entities.lua @@ -481,11 +481,12 @@ function airutils.logic(self) if stop ~= true then --maybe == nil self._last_accell = new_accel self.object:move_to(curr_pos) - --self.object:set_velocity(velocity) - --[[if player then - airutils.attach(self, player, self._instruction_mode) - end]]-- - airutils.set_acceleration(self.object, new_accel) + --airutils.set_acceleration(self.object, new_accel) + local limit = 100 + local vel_to_add = vector.multiply(new_accel,self.dtime) + vel_to_add.y = 0 + self.object:add_velocity(vel_to_add) + self.object:set_acceleration({x=0,y=new_accel.y, z=0}) else if stop == true then self._last_accell = self.object:get_acceleration()