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)