NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)