local v15up = Vector(0, 0, 15)local v20up = Vector(0, 0, 20)function ENT:PhysicsSimulate(phys, frametime) local v = self.Driver if not v:IsValid() then return SIM_NOTHING end v:SetPos(self:GetPos() + v15up) if self.Crash then if v:IsValid() then v:DestroyVehicle() end end if self.Launch > CurTime() then phys:ApplyForceCenter(self.BaseSpeed * phys:GetMass() * self:GetTrueUp() + v20up) phys:EnableGravity(false) return elseif self.TakeOff then phys:ApplyForceCenter((self.BaseSpeed / 1.5) * phys:GetMass() * self:GetTrueForward()) end if v:KeyDown( IN_JUMP ) then if self.TakeOff then self.Land = true self.TakeOff = false phys:EnableGravity(true) self:EmitSound("doors/doorstop1.wav", 100, math.random(90, 100)) elseif self.Land then self.TakeOff = true self.Land = false self.Launch = CurTime() + 1.3 self:EmitSound("ambient/machines/thumper_startup1.wav", 100, math.random(90, 100)) end end if self.Launch < CurTime() and self.TakeOff then if v:KeyDown( IN_FORWARD ) then if v.Inverted then phys:AddAngleVelocity(Angle(0, self.BaseSpeed * frametime * -66, 0)) else phys:AddAngleVelocity(Angle(0, self.BaseSpeed * frametime * 66, 0)) end elseif v:KeyDown( IN_BACK ) then if not v.Inverted then phys:AddAngleVelocity(Angle(0, self.BaseSpeed * frametime * -66, 0)) else phys:AddAngleVelocity(Angle(0, self.BaseSpeed * frametime * 66, 0)) end elseif v:KeyDown( IN_SPEED ) then if not self.Land then local forward = phys:GetMass() * self.BaseSpeed * self:GetTrueForward() phys:ApplyForceCenter(forward) end elseif v:KeyDown( IN_MOVELEFT ) then if not self.Land then phys:AddAngleVelocity(Angle(-1 * self.BaseSpeed * 0.5 * self:GetTrueForward():Forward(), 0, 0)) end elseif v:KeyDown( IN_MOVERIGHT ) then if not self.Land then phys:AddAngleVelocity(Angle(1 * self.BaseSpeed * 0.5 * self:GetTrueForward():Forward(), 0, 0)) end end endend