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