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

spaceView.py (4603B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\view\spaceView.py
      2 import evecamera
      3 from carbon.common.script.sys.serviceConst import ROLE_CONTENT
      4 from carbonui import uiconst
      5 from carbonui.uicore import uicore
      6 from eve.client.script.ui.inflight.navigation import InflightLayer
      7 from eve.client.script.ui.services.viewStateSvc import View
      8 from eve.common.script.sys.eveCfg import IsDockedInStructure
      9 from evecamera.locationalcamera import get_orbit_camera_by_solar_system, get_corrected_camera_id
     10 from eveuniverse.solar_systems import is_orbit_camera_range_limited, is_tactical_camera_suppressed, is_orbit_camera_range_limited_moderate
     11 
     12 class SpaceView(View):
     13     __guid__ = 'viewstate.SpaceView'
     14     __notifyevents__ = ['OnActiveCameraChanged']
     15     __dependencies__ = ['standing',
     16      'map',
     17      'wallet',
     18      'space',
     19      'stateSvc',
     20      'bracket',
     21      'target',
     22      'fleet',
     23      'autoPilot',
     24      'neocom',
     25      'corp',
     26      'alliance',
     27      'skillqueue',
     28      'dungeonTracking',
     29      'transmission',
     30      'clonejump',
     31      'assets',
     32      'charactersheet',
     33      'trigger',
     34      'contracts',
     35      'certificates',
     36      'sov',
     37      'turret',
     38      'posAnchor',
     39      'michelle',
     40      'sceneManager',
     41      'structureProximityTracker',
     42      'uiHighlightingService',
     43      'dockingHeroNotification']
     44     __layerClass__ = InflightLayer
     45     __subLayers__ = [('l_spaceTutorial', None, None),
     46      ('l_space_ui', None, None),
     47      ('l_bracket', None, None),
     48      ('l_sensorSuite', None, None),
     49      ('l_tactical', None, None)]
     50     __overlays__ = {'shipui', 'sidePanels', 'target'}
     51 
     52     def __init__(self):
     53         View.__init__(self)
     54         self.solarSystemID = None
     55         self.keyDownEvent = None
     56 
     57     def LoadView(self, change = None, **kwargs):
     58         self.solarSystemID = session.solarsystemid
     59         if session.role & ROLE_CONTENT:
     60             sm.StartService('scenario')
     61         self.bracket.Reload()
     62 
     63     def LoadCamera(self, cameraID = None, reopen = False):
     64         if cameraID is None:
     65             sceneMan = sm.GetService('sceneManager')
     66             currCam = sceneMan.GetActivePrimaryCamera()
     67             if currCam:
     68                 if not currCam.IsLocked() or self._PrimaryCameraNeedsCorrecting(currCam):
     69                     self.ActivatePrimaryCamera()
     70             else:
     71                 self.ActivatePrimaryCamera()
     72         else:
     73             sm.GetService('sceneManager').SetPrimaryCamera(cameraID)
     74 
     75     def UnloadView(self):
     76         self.LogInfo('unloading: removed ballpark and cleared effects')
     77         uicore.layer.main.state = uiconst.UI_PICKCHILDREN
     78 
     79     def ShowView(self, **kwargs):
     80         View.ShowView(self, **kwargs)
     81         self.keyDownEvent = uicore.event.RegisterForTriuiEvents([uiconst.UI_KEYDOWN], self.CheckKeyDown)
     82 
     83     def HideView(self):
     84         if self.keyDownEvent:
     85             uicore.event.UnregisterForTriuiEvents(self.keyDownEvent)
     86         View.HideView(self)
     87 
     88     def CheckShouldReopen(self, newKwargs, cachedKwargs):
     89         reopen = False
     90         if newKwargs == cachedKwargs or 'changes' in newKwargs and 'solarsystemid' in newKwargs['changes']:
     91             reopen = True
     92         return reopen
     93 
     94     def CheckKeyDown(self, *args):
     95         ctrl = uicore.uilib.Key(uiconst.VK_CONTROL)
     96         alt = uicore.uilib.Key(uiconst.VK_MENU)
     97         shift = uicore.uilib.Key(uiconst.VK_SHIFT)
     98         if not ctrl and alt and not shift and session.solarsystemid:
     99             self.bracket.ShowOwnShip()
    100         return 1
    101 
    102     def GetRegisteredCameraID(self):
    103         if IsDockedInStructure():
    104             return evecamera.CAM_SHIPORBIT
    105         solar_system_id = session.solarsystemid
    106         cameraID = settings.char.ui.Get('spaceCameraID', get_orbit_camera_by_solar_system(solar_system_id))
    107         cameraID = get_corrected_camera_id(cameraID, solar_system_id)
    108         return cameraID
    109 
    110     def _PrimaryCameraNeedsCorrecting(self, currCam):
    111         primaryCameraID = currCam.cameraID
    112         correctedPrimaryCameraID = get_corrected_camera_id(primaryCameraID, session.solarsystemid2)
    113         needsCorrecting = primaryCameraID != correctedPrimaryCameraID
    114         return needsCorrecting
    115 
    116     def OnActiveCameraChanged(self, cameraID):
    117         tacticalSvc = sm.GetService('tactical')
    118         if tacticalSvc.IsTacticalOverlayActive():
    119             tacticalSvc.ShowTacticalOverlay()
    120         else:
    121             tacticalSvc.HideTacticalOverlay()
    122 
    123     def ActivatePrimaryCamera(self):
    124         cameraID = self.GetRegisteredCameraID()
    125         sceneMan = sm.GetService('sceneManager')
    126         return sceneMan.SetPrimaryCamera(cameraID)