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

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)