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
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')
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')
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
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