NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

fleetFinderEntry.py (6203B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fleet\fleetFinderEntry.py
      2 import evefleet.client
      3 from carbonui import const as uiconst
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.frame import Frame
      6 from carbonui.uiconst import defaultPadding
      7 from eve.client.script.ui.control.entries.generic import Generic
      8 from eve.client.script.ui.control.eveIcon import Icon
      9 from eve.client.script.ui.shared.stateFlag import AddAndSetFlagIconFromData
     10 from eveservices.menu import GetMenuService
     11 from localization import GetByLabel
     12 from menu import MenuLabel
     13 import blue
     14 
     15 class FleetFinderEntry(Generic):
     16     __guid__ = 'listentry.FleetFinderEntry'
     17     isDragObject = True
     18 
     19     def Startup(self, *args):
     20         Generic.Startup(self, *args)
     21         self.picture = Container(name='picture', parent=self, pos=(defaultPadding,
     22          2,
     23          32,
     24          32), state=uiconst.UI_PICKCHILDREN, align=uiconst.TOPLEFT)
     25         self.portrait = Icon(name='portrait', parent=self.picture, size=32, align=uiconst.TOPLEFT, state=uiconst.UI_NORMAL)
     26 
     27     def Load(self, node):
     28         Generic.Load(self, node)
     29         Frame(parent=self.picture)
     30         sm.GetService('photo').GetPortrait(node.charID, 32, self.portrait)
     31         AddAndSetFlagIconFromData(parentCont=self.picture, data=node, top=23)
     32         self.portrait.OnClick = (sm.GetService('info').ShowInfo, cfg.eveowners.Get(node.charID).typeID, node.charID)
     33         self.sr.label.left = 40
     34         self.sr.label.text = node.label
     35         self.sr.label.Update()
     36 
     37     def GetHeight(self, *args):
     38         node, width = args
     39         node.height = 37
     40         return node.height
     41 
     42     def GetMenu(self, *args):
     43         menuSvc = GetMenuService()
     44         m = []
     45         fleet = self.sr.node.fleet
     46         fleetSvc = sm.GetService('fleet')
     47         if self.sr.node.fleetID != session.fleetid:
     48             m += [(MenuLabel('UI/Fleet/FleetRegistry/JoinFleet'), self.ApplyToJoinFleet)]
     49             m += [None]
     50         elif fleetSvc.IsBoss():
     51             m += [(MenuLabel('UI/Fleet/FleetWindow/EditAdvert'), fleetSvc.OpenRegisterFleetWindow)]
     52             if sm.GetService('fleet').GetCurrentAdvertForMyFleet() is not None:
     53                 m += [(MenuLabel('UI/Fleet/FleetWindow/RemoveAdvert'), fleetSvc.UnregisterFleet)]
     54             m += [None]
     55         fleetbossMenu = menuSvc.CharacterMenu(fleet.leader.charID)
     56         m += [(MenuLabel('UI/Fleet/Ranks/Boss'), fleetbossMenu)]
     57         if fleet.solarSystemID:
     58             m += [(MenuLabel('UI/Fleet/FleetRegistry/BossLocationHeader'), menuSvc.CelestialMenu(itemID=fleet.solarSystemID))]
     59         return m
     60 
     61     def OnDblClick(self, *args):
     62         self.ApplyToJoinFleet()
     63 
     64     def ApplyToJoinFleet(self, *args):
     65         fleetID = self.sr.node.fleet.fleetID
     66         fleetSvc = sm.GetService('fleet')
     67         fleetSvc.ApplyToJoinFleet(fleetID)
     68         fleetSvc.LogFleetJoinAttempts(fleetID, evefleet.JOIN_SOURCE_FLEET_FINDER_ENTRY)
     69 
     70     def GetHint(self):
     71         fleetAd = self.sr.node.fleet
     72         hint = ''
     73         hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetName', fleetName=fleetAd.fleetName) + '<br>'
     74         hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetBoss', charID=fleetAd.leader.charID) + '<br>'
     75         if fleetAd.standing is not None:
     76             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintBossStanding', standing=fleetAd.standing) + '<br>'
     77         if fleetAd.solarSystemID:
     78             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetLocation', location=fleetAd.solarSystemID) + '<br>'
     79         hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetAge', fleetAge=blue.os.GetWallclockTime() - fleetAd.dateCreated) + '<br>'
     80         if fleetAd.numMembers:
     81             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetMemberCount', memberCount=fleetAd.numMembers) + '<br>'
     82             if fleetAd.advertJoinLimit and fleetAd.numMembers >= fleetAd.advertJoinLimit:
     83                 txt = GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetMemberCountMoreThanLimit', advertJoinLimit=fleetAd.advertJoinLimit)
     84                 hint += '<color=0xffdd0000>%s</color>' % txt + '<br>'
     85         hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintScope') + '<br>'
     86         if evefleet.IsOpenToCorp(fleetAd):
     87             hint += GetByLabel('UI/Common/Corporation') + '<br>'
     88         if evefleet.IsOpenToAlliance(fleetAd):
     89             hint += GetByLabel('UI/Common/Alliance') + '<br>'
     90         if evefleet.IsOpenToMilitia(fleetAd):
     91             hint += GetByLabel('UI/Common/Militia') + '<br>'
     92         if fleetAd.membergroups_minStanding is not None:
     93             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumStanding', standing=fleetAd.membergroups_minStanding) + '<br>'
     94         if fleetAd.membergroups_minSecurity is not None:
     95             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumSecurity', security=fleetAd.membergroups_minSecurity) + '<br>'
     96         if evefleet.IsOpenToPublic(fleetAd):
     97             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/PublicAccessScope') + '<br>'
     98         elif evefleet.IsOpenToAllPublic(fleetAd):
     99             hint += '<b>%s</b>' % GetByLabel('UI/Agency/Fleetup/Public Access') + '<br>'
    100         if fleetAd.public_minStanding is not None:
    101             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumStanding', standing=fleetAd.public_minStanding) + '<br>'
    102         if fleetAd.public_minSecurity is not None:
    103             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumSecurity', security=fleetAd.public_minSecurity) + '<br>'
    104         if fleetAd.joinNeedsApproval:
    105             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/NeedsApproval') + '<br>'
    106         if fleetAd.description:
    107             hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetDescription', description=fleetAd.description)
    108         return hint
    109 
    110     def GetDragData(self, *args):
    111         data = evefleet.client.FleetDragData(fleet_id=self.sr.node.fleet.fleetID, name=self.sr.node.fleet.fleetName)
    112         return [data]