示例#1
0
 def GetDistance(self):
     ballpark = sm.GetService('michelle').GetBallpark()
     if ballpark is None:
         raise InvalidClientStateError('No longer have a ballpark.')
     ball = ballpark.GetBall(self.data.ballID)
     if ball is None:
         raise InvalidClientStateError(
             'No longer have the ball in the ballpark')
     return ball.surfaceDist
示例#2
0
    def WaitForSceneReady(self):
        scene = self.sceneManager.GetRegisteredScene('default')
        startTime = gametime.GetSimTime()
        while scene is None and startTime + SEC * 15 < gametime.GetSimTime():
            uthread2.Sleep(0.25)
            if session.solarsystemid is None:
                raise InvalidClientStateError('Solarsystemid is None in session')
            scene = self.sceneManager.GetRegisteredScene('default')

        if scene is None:
            raise InvalidClientStateError('Failed to find the default space scene')
示例#3
0
    def WaitForSceneReady(self):
        scene = self.sceneManager.GetRegisteredScene('default')
        startTime = blue.os.GetSimTime()
        while scene is None and startTime + SEC * 15 < blue.os.GetSimTime():
            blue.pyos.synchro.SleepWallclock(250)
            if session.solarsystemid is None:
                raise InvalidClientStateError(
                    'Solarsystemid is None in session')
            scene = self.sceneManager.GetRegisteredScene('default')

        if scene is None:
            raise InvalidClientStateError(
                'Failed to find the default space scene')
示例#4
0
 def GetViewAngleInPlane(self):
     camera = self.sceneManager.GetActiveCamera()
     if camera is None:
         raise InvalidClientStateError('No camera found')
     viewVec = camera.GetLookAtDirection()
     viewAngleInPlane = math.atan2(viewVec[0], viewVec[2])
     return viewAngleInPlane
 def UpdateProbeResultBrackets(self):
     """
     Here we need to update the scan result with the latest signature scan results
     """
     updateSigData = set()
     for sigData in self.siteController.siteMaps.IterSitesByKey(SIGNATURE):
         with ExceptionEater('Updating signature overlay bracket'):
             result = self.scanSvc.GetResultForTargetID(sigData.targetID)
             if result is None:
                 continue
             if sigData.dungeonNameID is None:
                 dungeonNameID = result.get('dungeonNameID', None)
                 if dungeonNameID is not None:
                     sigData.dungeonNameID = dungeonNameID
                     updateSigData.add(sigData)
             if sigData.factionID is None:
                 factionID = result.get('factionID', None)
                 if factionID is not None:
                     sigData.factionID = factionID
                     updateSigData.add(sigData)
             if sigData.scanStrengthAttribute is None:
                 strengthAttributeID = result.get('strengthAttributeID',
                                                  None)
                 if strengthAttributeID is not None:
                     sigData.scanStrengthAttribute = strengthAttributeID
                     updateSigData.add(sigData)
             if result['certainty'] > sigData.signalStrength and isinstance(
                     result['data'], tuple):
                 sigData.signalStrength = result['certainty']
                 if result['certainty'] >= 1.0:
                     sigData.position = result['data']
                     bp = self.michelle.GetBallpark()
                     if bp is None:
                         raise InvalidClientStateError('ballpark not found')
                     if self.siteController.spaceLocations.ContainsSite(
                             sigData.siteID):
                         ball = self.siteController.spaceLocations.GetBySiteID(
                             sigData.siteID).ballRef()
                         bp.SetBallPosition(ball.id, *sigData.position)
                         self.siteController.NotifySiteChanged(sigData)
                 updateSigData.add(sigData)
         if updateSigData:
             for sigData_ in updateSigData:
                 self.UpdateScanData(sigData_)
 def MakeSiteLocationMarker(self, siteData):
     ballpark = self.michelle.GetBallpark()
     if ballpark is None:
         raise InvalidClientStateError('ballpark has gone missing')
     ball = ballpark.AddClientSideBall(siteData.position, isGlobal=True)
     siteData.ballID = ball.id
     bracketClass = siteData.GetBracketClass()
     bracket = bracketClass(name=str(siteData.siteID),
                            parent=uicore.layer.sensorSuite,
                            data=siteData)
     tracker = bracket.projectBracket
     tracker.trackBall = ball
     tracker.name = str(siteData.siteID)
     self.spaceLocations.AddLocation(ball, bracket, siteData)
     if self.sensorSuiteService.IsOverlayActive():
         bracket.state = uiconst.UI_NORMAL
     else:
         bracket.state = uiconst.UI_DISABLED
     return bracket
示例#7
0
 def GetViewAngleInPlane(self):
     camera = self.sceneManager.GetRegisteredCamera('default')
     if camera is None:
         raise InvalidClientStateError('No camera found')
     viewAngleInPlane = math.atan2(camera.viewVec[0], camera.viewVec[2])
     return viewAngleInPlane