示例#1
0
 def GMShowResource(self, resourceTypeID, layer):
     self.LogInfo('GMShowResource', resourceTypeID, layer)
     planet = sm.GetService('planetSvc').GetPlanet(self.planetID)
     data = planet.remoteHandler.GMGetCompleteResource(
         resourceTypeID, layer)
     sh = builder.CreateSHFromBuffer(data.data, data.numBands)
     self.ShowSH(sh, scaleIt=layer == 'base')
示例#2
0
 def GetResourceData(self, resourceTypeID):
     if not hasattr(self, 'resources'):
         self.LogInfo('GetResourceData: creating resource collection')
         self.resources = {}
     if resourceTypeID not in self.resources:
         self.LogInfo(
             'GetResourceData: creating new resource entry for resource',
             resourceTypeID)
         entry = self.CreateResourceEntry()
         self.resources[resourceTypeID] = entry
     else:
         entry = self.resources[resourceTypeID]
     inRange = True
     info = self.CreateResourceInfo(resourceTypeID, entry)
     if getattr(info, 'skillMissing', False):
         inRange = False
         eve.Message(
             'PISkillRequiredToSurveyPlanetResources',
             {'skill': cfg.invtypes.Get(const.typeRemoteSensing).typeName})
     elif getattr(info, 'unreachableSystem', False):
         inRange = False
         eve.Message('PIUnableToScanWorholeSystemRemotely')
     elif hasattr(info, 'requiredSkill'):
         inRange = False
         eve.Message('PISkillLevelToLowForRemoteSensing',
                     {'level': info.requiredSkill})
     elif hasattr(info, 'systemOutOfRange'):
         inRange = False
         eve.Message(
             'PISkillLevelToLowForRemoteSensingDistance', {
                 'systemDistance': info.systemDistance,
                 'maxScanDistance': info.maxScanDistance
             })
     elif info.newBand > entry.numBands or blue.os.GetWallclockTime(
     ) > entry.updateTime:
         self.LogInfo('GetResourceData: refreshing data: newBand',
                      info.newBand, 'currentBand', entry.numBands,
                      'updateTime', entry.updateTime)
         shData = self.remoteHandler.GetResourceData(info)
         if shData.data is not None:
             entry.sh = builder.CreateSHFromBuffer(shData.data,
                                                   shData.numBands)
             entry.updateTime = blue.os.GetWallclockTime(
             ) + planetCommon.RESOURCE_CACHE_TIMEOUT
             entry.proximity = shData.proximity
             entry.numBands = shData.numBands
             self.LogInfo('GetResourceData: creating SH for ',
                          resourceTypeID, 'upto band', shData.numBands)
         else:
             self.LogInfo('GetResourceData: no new data received')
     else:
         self.LogInfo('GetResourceData: no need to refresh data')
     return (inRange, self.resources[resourceTypeID].sh)