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

eveOverrides.py (7585B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\util\eveOverrides.py
      2 import carbonui.const as uiconst
      3 import evetypes
      4 import inventorycommon.const as invConst
      5 from carbonui.control.dragdrop.dragdata.basedragdata import BaseDragData
      6 from eve.client.script.ui.control.allUserEntries import AllUserEntries
      7 from eve.client.script.ui.control.eveIcon import DraggableIcon
      8 from eve.client.script.ui.inflight.bracketsAndTargets.targetInBar import TargetInBar
      9 from eve.client.script.ui.inflight.bracketsAndTargets.targetInBarFighter import TargetInBarFighter
     10 from eve.client.script.ui.util.uix import GetOwnerLogo
     11 from eve.common.lib.appConst import singletonBlueprintCopy
     12 iconDict = {'listentry.PlaceEntry': 'res:/ui/Texture/WindowIcons/personallocations.png',
     13  'listentry.NoteItem': 'res:/ui/Texture/WindowIcons/note.png',
     14  'listentry.VirtualAgentMissionEntry': 'res:/ui/Texture/WindowIcons/journal.png',
     15  'listentry.FleetFinderEntry': 'res:/UI/Texture/WindowIcons/fleet.png',
     16  'listentry.FittingEntry': 'res:/ui/Texture/WindowIcons/fitting.png',
     17  'listentry.MailEntry': 'res:/UI/Texture/WindowIcons/evemail.png',
     18  'listentry.CorpAllianceEntry': 'res:/ui/Texture/WindowIcons/corporation.png',
     19  'listentry.QuickbarGroup': 'res:/ui/Texture/WindowIcons/smallfolder.png',
     20  'listentry.KillMail': 'res:/ui/Texture/WindowIcons/killreport.png',
     21  'listentry.KillMailCondensed': 'res:/ui/Texture/WindowIcons/killreport.png',
     22  'listentry.WarKillEntry': 'res:/UI/Texture/WindowIcons/wars.png',
     23  'listentry.WarEntry': 'res:/UI/Texture/WindowIcons/wars.png',
     24  'listentry.CertEntry': 'res:/UI/Texture/WindowIcons/certificates.png',
     25  'listentry.DroneMainGroup': 'res:/UI/Texture/WindowIcons/dronebay.png',
     26  'listentry.DroneSubGroup': 'res:/UI/Texture/WindowIcons/dronebay.png',
     27  'listentry.XmppChannelField': 'res:/ui/Texture/WindowIcons/chatchannel.png',
     28  'listentry.PointerWndEntry': 'res:/ui/texture/classes/HelpPointer/highlightElement64.png'}
     29 iconsByNodeType = {'AccessGroupEntry': 'res:/UI/Texture/WindowIcons/accessGroups.png',
     30  'BookmarkFolderEntry': 'res:/UI/Texture/classes/Bookmarks/sharedFolderAddress_64.png'}
     31 typeEntries = ('xtriui.InvItem', 'listentry.InvItem', 'listentry.InvAssetItem', 'listentry.InvAssetItemBySelection', 'listentry.InvItemWithVolume', 'xtriui.TypeIcon', 'uicls.GenericDraggableForTypeID', 'listentry.SkillTreeEntry', 'listentry.Item', 'listentry.ContractItemSelect', 'listentry.RedeemToken', 'listentry.FittingModuleEntry', 'listentry.KillItems', 'listentry.CustomsItem', 'uicls.FightersHealthGauge', 'listentry.QuickbarItem', 'listentry.GenericMarketItem', 'listentry.DirectionalScanResults', 'listentry.DroneEntry', 'xtriui.FittingSlot', 'xtriui.ModuleButton', 'xtriui.ShipUIModule')
     32 iconSize = 64
     33 
     34 def PrepareDrag_Override(dragContainer, dragSource, *args):
     35     column = 0
     36     row = 0
     37     for dragData in dragContainer.dragData:
     38         typeID = getattr(dragData, 'typeID', None) or getattr(dragData, 'invtype', None)
     39         if typeID is not None:
     40             groupID = evetypes.GetGroupID(typeID)
     41         else:
     42             groupID = None
     43         icon = _ConstructIcon(dragContainer, groupID, column, row)
     44         if isinstance(dragData, BaseDragData):
     45             icon.LoadIcon(dragData.GetIconTexturePath())
     46         else:
     47             _LoadIcon(icon, dragContainer, dragData, typeID)
     48         column += 1
     49         if column >= 3:
     50             column = 0
     51             row += 1
     52         if row > 2:
     53             break
     54 
     55     return (0, 0)
     56 
     57 
     58 def _ConstructIcon(dragContainer, groupID, column, row):
     59     location_icon = groupID in (invConst.groupSolarSystem, invConst.groupConstellation, invConst.groupRegion)
     60     left = column * (iconSize + 10)
     61     top = row * (iconSize + 10)
     62     icon = DraggableIcon(parent=dragContainer, align=uiconst.TOPLEFT, state=uiconst.UI_DISABLED, pos=(left,
     63      top,
     64      64,
     65      64), location_icon=location_icon)
     66     return icon
     67 
     68 
     69 def _LoadIcon(icon, dragContainer, dragData, typeID):
     70     from eve.client.script.ui.shared.inventory.treeData import TreeDataInv, TreeDataInvFolder
     71     guid = getattr(dragData, '__guid__', None)
     72     if getattr(dragData, 'LoadIcon', None) is not None:
     73         dragData.LoadIcon(icon, dragContainer, iconSize)
     74     elif getattr(dragData, 'GetDragIcon', None):
     75         icon.SetTexturePath(dragData.GetDragIcon())
     76     elif guid in typeEntries:
     77         icon.LoadIconByTypeID(typeID=typeID, size=iconSize, isCopy=IsBlueprintCopy(dragData))
     78     elif guid in AllUserEntries():
     79         GetOwnerLogo(icon, dragData.charID, iconSize, noServerCall=False)
     80     elif guid in iconDict:
     81         icon.LoadIcon(iconDict.get(guid))
     82     elif guid and guid.startswith('listentry.ContractEntry'):
     83         iconName = 'res:/ui/Texture/WindowIcons/contracts.png'
     84         if 'Auction' in guid:
     85             iconName = 'res:/ui/Texture/WindowIcons/contractAuction.png'
     86         elif 'ItemExchange' in guid:
     87             iconName = 'res:/ui/Texture/WindowIcons/contractItemExchange.png'
     88         elif 'Courier' in guid:
     89             iconName = 'res:/ui/Texture/WindowIcons/contractCourier.png'
     90         icon.LoadIcon(iconName)
     91     elif getattr(dragData, 'isLandMark', None):
     92         landmarkIconNum = dragData.iconNum
     93         icon.sr.icon.LoadIcon(landmarkIconNum)
     94         icon.sr.icon.rectLeft = 64
     95         icon.sr.icon.rectWidth = 128
     96     elif guid in ('xtriui.ListSurroundingsBtn', 'listentry.LocationTextEntry', 'listentry.LocationGroup', 'listentry.LocationSearchItem', 'listentry.LabelLocationTextTop'):
     97         icon.LoadIconByTypeID(dragData.typeID, itemID=dragData.itemID)
     98     elif guid == 'listentry.PaletteEntry':
     99         icon.LoadIconByTypeID(dragData.id, itemID=dragData.id)
    100     elif guid in ('listentry.SkillEntry', 'listentry.SkillQueueSkillEntry'):
    101         icon.LoadIconByTypeID(dragData.invtype)
    102     elif guid == 'neocom.BtnDataNode':
    103         icon.LoadIcon(dragData.iconPath)
    104     elif isinstance(dragData, (TreeDataInv, TreeDataInvFolder)):
    105         icon.LoadIcon(dragData.GetIcon())
    106     elif guid == 'listentry.RecruitmentEntry':
    107         corpID = dragData.corporationID
    108         GetOwnerLogo(icon, corpID, iconSize, noServerCall=False)
    109     elif guid in ('uicls.TargetInBar', 'uicls.TargetInBarFighter'):
    110         if guid == 'uicls.TargetInBar':
    111             targetType = TargetInBar
    112         else:
    113             targetType = TargetInBarFighter
    114         icon.Flush()
    115         targetIcon = targetType(align=uiconst.TOPLEFT, pos=(0, 0, 64, 64), parent=icon)
    116         targetIcon.AddUIObjects(slimItem=dragData.slimItem(), itemID=dragData.itemID)
    117         if getattr(dragData, 'OnBeginMoveTarget', None):
    118             dragData.OnBeginMoveTarget()
    119     elif getattr(dragData, 'typeID', None) == invConst.typeSkinMaterial:
    120         icon.LoadIcon(dragData.texturePath)
    121     elif getattr(dragData, 'nodeType', None) in iconsByNodeType:
    122         path = iconsByNodeType.get(dragData.nodeType)
    123         icon.LoadIcon(path)
    124     elif guid == 'listentry.AgencyHelpVideoEntry':
    125         icon.LoadIcon('res:/ui/texture/icons/bigplay_64.png')
    126     elif hasattr(dragData, 'typeID'):
    127         icon.LoadIconByTypeID(dragData.typeID)
    128 
    129 
    130 def IsBlueprintCopy(node):
    131     if getattr(node, 'isCopy', None):
    132         return True
    133     bpData = getattr(node, 'bpData', None)
    134     if bpData:
    135         return not bpData.original
    136     if getattr(node, 'invtype', None):
    137         if getattr(node, 'rec', None) is None:
    138             return False
    139         node.isBlueprint = evetypes.GetCategoryID(node.invtype) == invConst.categoryBlueprint
    140         if node.isBlueprint:
    141             return node.rec.singleton == singletonBlueprintCopy
    142     return False