shipOrbitCameraController.py (3410B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\camera\shipOrbitCameraController.py 2 import math 3 import carbonui.const as uiconst 4 from eve.client.script.ui.camera.cameraUtil import SetShipDirection, GetZoomDz, CheckInvertZoom 5 from eve.client.script.ui.camera.baseCameraController import BaseCameraController 6 from eve.client.script.ui.camera.cameraAchievementEventTracker import CameraAchievementEventTracker 7 import evecamera 8 from carbonui.uicore import uicore 9 10 class ShipOrbitCameraController(BaseCameraController): 11 cameraID = evecamera.CAM_SHIPORBIT 12 13 def __init__(self, *args, **kwargs): 14 super(ShipOrbitCameraController, self).__init__(*args, **kwargs) 15 self.cameraAchievementEventTracker = CameraAchievementEventTracker() 16 17 def OnMouseMove(self, *args): 18 camera = self.GetCamera() 19 kOrbit = evecamera.ORBIT_MOVE_DIST 20 if uicore.uilib.leftbtn and uicore.uilib.rightbtn: 21 kZoom = 0.005 22 self._Zoom(-CheckInvertZoom(uicore.uilib.dy), kZoom) 23 if math.fabs(uicore.uilib.dx) > 1: 24 if not self.IsCameraRotated(): 25 camera.Orbit(0.01 * self.GetMouseDX(), 0.0) 26 self.RecordOrbitForAchievements() 27 elif uicore.uilib.leftbtn: 28 camera.Orbit(kOrbit * self.GetMouseDX(), kOrbit * self.GetMouseDY()) 29 self.RecordOrbitForAchievements() 30 elif uicore.uilib.rightbtn and not camera.IsTracking(): 31 kRotate = 0.005 * camera.fov 32 camera.Rotate(kRotate * self.GetMouseDX(), kRotate * self.GetMouseDY()) 33 34 def OnMouseDown(self, button, *args): 35 ret = BaseCameraController.OnMouseDown(self, button, *args) 36 self.GetCamera().OnMouseDown(button) 37 if button == 1: 38 uicore.event.RegisterForTriuiEvents(uiconst.UI_MOUSEUP, self.OnGlobalRightMouseUp) 39 return ret 40 41 def OnMouseUp(self, button, *args): 42 BaseCameraController.OnMouseUp(self, button, *args) 43 camera = self.GetCamera() 44 camera.OnMouseUp(button) 45 self.cameraAchievementEventTracker.StopRecordingOrbitForAchievements() 46 47 def OnGlobalRightMouseUp(self, obj, eventID, param): 48 vkey, flag = param 49 if vkey != 1: 50 return True 51 self.ResetRotate() 52 53 def OnDblClick(self, *args): 54 if uicore.uilib.rightbtn or uicore.uilib.mouseTravel > 6: 55 return 56 SetShipDirection(self.GetCamera()) 57 58 def OnMouseWheel(self, *args): 59 k = 0.0005 60 dz = GetZoomDz() 61 self._Zoom(dz, k) 62 63 def _Zoom(self, dz, k): 64 camera = self.GetCamera() 65 self.RecordZoomForAchievements(dz) 66 if uicore.uilib.Key(uiconst.VK_MENU) or self.IsCameraRotated(): 67 camera.FovZoom(k * dz) 68 elif camera.lookAtBall: 69 camera.Zoom(k * dz) 70 self.ResetRotate() 71 72 def ResetRotate(self): 73 camera = self.GetCamera() 74 camera.ResetRotate() 75 camera.DisableManualFov() 76 77 def IsCameraRotated(self): 78 return uicore.uilib.rightbtn and self.GetCamera().IsRotated() 79 80 def RecordOrbitForAchievements(self): 81 camera = self.GetCamera() 82 self.cameraAchievementEventTracker.RecordOrbitForAchievements(self, camera) 83 84 def RecordZoomForAchievements(self, amount): 85 self.cameraAchievementEventTracker.RecordZoomForAchievements(amount)