fixed hidro buoyance fail

This commit is contained in:
Alexsandro Percy 2023-11-12 18:26:31 -03:00
parent 8d97207749
commit e3ec3a2514
2 changed files with 6 additions and 3 deletions

View file

@ -36,10 +36,13 @@ function airutils.physics(self)
local height = self.height
local submergence = math.min(surface-spos.y,height)/height
-- local balance = self.buoyancy*self.height
--local buoyacc = airutils.gravity*(self.buoyancy-submergence)
local buoyacc = airutils.gravity*(self.buoyancy-submergence)
--local buoyacc = self._baloon_buoyancy*(self.buoyancy-submergence)
accell = {x=-vel.x*self.water_drag,y=buoyacc-(vel.y*math.abs(vel.y)*0.4),z=-vel.z*self.water_drag}
accell = {
x=-vel.x*self.water_drag,
y=buoyacc-(vel.y*math.abs(vel.y)*0.4),
z=-vel.z*self.water_drag
}
if self.buoyancy >= 1 then self._engine_running = false end
if last_accel then
accell = vector.add(accell,last_accel)

View file

@ -331,7 +331,7 @@ function airutils.logic(self)
if (math.abs(velocity.x) < 0.1 and math.abs(velocity.z) < 0.1) and is_flying == false and is_attached == false and self._engine_running == false then
if self._ground_friction then
if self._ground_friction > 0.97 then self.object:set_velocity({x=0,y=airutils.gravity*self.dtime,z=0}) end
if self._ground_friction > 0.97 and self.buoyancy >= 1 then self.object:set_velocity({x=0,y=airutils.gravity*self.dtime,z=0}) end
end
return
end