directionalScanUtil.py (3082B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\scannerFiles\directionalScanUtil.py 2 import math 3 from carbonui.uicore import uicore 4 from eveuniverse.solar_systems import get_max_directional_scanner_range 5 SCANMODE_TARGET = 1 6 SCANMODE_CAMERA = 2 7 RANGEMODE_AU = 1 8 RANGEMODE_KM = 2 9 10 def SetActiveScanMode(scanMode): 11 if GetActiveScanMode() != scanMode: 12 settings.char.ui.Set('directionalScannerMode', scanMode) 13 sm.ScatterEvent('OnDirectionalScannerScanModeChanged', scanMode) 14 15 16 def GetActiveScanMode(): 17 return settings.char.ui.Get('directionalScannerMode', SCANMODE_TARGET) 18 19 20 def ToggleScanMode(): 21 scanMode = GetActiveScanMode() 22 if scanMode == SCANMODE_TARGET: 23 SetScanModeCamera() 24 else: 25 SetScanModeTarget() 26 27 28 def SetScanModeTarget(): 29 SetActiveScanMode(SCANMODE_TARGET) 30 31 32 def SetScanModeCamera(): 33 SetActiveScanMode(SCANMODE_CAMERA) 34 35 36 def SetScanConeDisplayState(displayState): 37 if IsDscanConeShown() != displayState: 38 settings.char.ui.Set('directionalScannerShowCone', displayState) 39 sm.ScatterEvent('OnDirectionalScannerShowCone', displayState) 40 41 42 def IsDscanConeShown(): 43 return settings.char.ui.Get('directionalScannerShowCone', True) 44 45 46 def ConvertKmToAu(kmValue): 47 auValue = kmValue * 1000 / const.AU 48 return auValue 49 50 51 def ConvertAuToKm(auValue): 52 kmValue = int(auValue * const.AU / 1000) 53 return kmValue 54 55 56 def GetScanRange(): 57 return settings.user.ui.Get('dir_scanrange', const.AU * GetMaxRangeAU()) 58 59 60 def GetScanRangeInMeters(): 61 return GetScanRange() * 1000 62 63 64 def SetScanRange(scanRangeKM): 65 maxRangeKm = GetMaxRangeKM() 66 scanRangeKM = min(maxRangeKm, max(MIN_RANGE_KM, scanRangeKM)) 67 settings.user.ui.Set('dir_scanrange', scanRangeKM) 68 sm.ScatterEvent('OnDirectionalScannerRangeChanged', GetScanRangeInMeters()) 69 70 71 MIN_RANGE_KM = 10 72 _MAX_RANGE_AU = 14.3 73 MIN_RANGE_AU = ConvertKmToAu(MIN_RANGE_KM) 74 _MAX_RANGE_KM = ConvertAuToKm(_MAX_RANGE_AU) 75 76 def GetMaxRangeAU(): 77 return ConvertKmToAu(GetMaxRangeKM()) 78 79 80 def GetMaxRangeKM(): 81 return GetMaxRangeM() / 1000.0 82 83 84 def GetMaxRangeM(): 85 try: 86 dogmaLocation = sm.GetService('clientDogmaIM').GetDogmaLocation() 87 shipMaxRange = dogmaLocation.GetAccurateAttributeValue(session.shipid, const.attributeMaxDirectionalScanRange) 88 solarsystemMaxRange = get_max_directional_scanner_range(session.solarsystemid2) 89 if solarsystemMaxRange is None: 90 allowedMaxRange = shipMaxRange 91 else: 92 allowedMaxRange = min(solarsystemMaxRange, shipMaxRange) 93 return allowedMaxRange 94 except Exception as e: 95 return _MAX_RANGE_KM * 1000.0 96 97 98 def GetScanAngle(): 99 return settings.user.ui.Get('scan_angleSlider', math.pi / 2) 100 101 102 def SetScanAngle(angle): 103 angle = max(0, min(angle, 2 * math.pi)) 104 settings.user.ui.Set('scan_angleSlider', angle) 105 sm.ScatterEvent('OnDirectionalScannerAngleChanged', angle) 106 107 108 def IsDscanShortcutPressed(): 109 return uicore.cmd.IsCombatCommandLoaded('CmdRefreshDirectionalScan')