cameraBobbingOffsetter.py (980B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\camera\util\cameraBobbingOffsetter.py 2 import math 3 import blue 4 import geo2 5 from carbonui.uianimations import animations 6 BOBBING_SPEED = 0.5 7 VOMIT_THRESHOLD = 3100 8 9 class CameraBobbingOffsetter: 10 11 def __init__(self): 12 self.angle = 0.0 13 self.rampValue = 0.0 14 15 def UpdateOffset(self, atPosition, eyePosition): 16 t = blue.os.fps 17 self.angle += 1.0 / t * BOBBING_SPEED 18 if self.angle > 2 * math.pi: 19 self.angle %= 2 * math.pi 20 distance = min(VOMIT_THRESHOLD, geo2.Vec3Distance(atPosition, eyePosition)) 21 idleYaw = distance * math.cos(self.angle) / 400.0 * self.rampValue 22 idlePitch = 1.2 * idleYaw * math.sin(self.angle) * self.rampValue 23 bobbingOffset = (idleYaw, idlePitch, 0) 24 return bobbingOffset 25 26 def OnActivated(self): 27 animations.MorphScalar(self, 'rampValue', 0.0, 1.0, duration=2.0)