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

devMenuFunctions.py (2385B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\skins\devMenuFunctions.py
      2 from eve.client.script.ui.util.uix import ListWnd, QtyPopup
      3 from eve.devtools.script.slashError import Error
      4 
      5 def GiveSkin(materialID, typeID):
      6     skin = _PickSkinForMaterialAndType(materialID, typeID)
      7     duration = _SelectSkinDuration()
      8     if duration is None:
      9         return
     10     sm.RemoteSvc('shipCosmeticsMgr').GiveSkin(skin.skinID, duration=duration)
     11 
     12 
     13 def GivePermanentSkin(materialID, typeID):
     14     skin = _PickSkinForMaterialAndType(materialID, typeID)
     15     sm.RemoteSvc('shipCosmeticsMgr').GiveSkin(skin.skinID)
     16 
     17 
     18 def GiveLimitedSkin(materialID, typeID):
     19     skin = _PickSkinForMaterialAndType(materialID, typeID)
     20     sm.RemoteSvc('shipCosmeticsMgr').GiveSkin(skin.skinID, isSingleUse=True)
     21 
     22 
     23 def GetSkinUsedWithTypeAndMaterial(materialID, typeID):
     24     return _PickSkinForMaterialAndType(materialID, typeID)
     25 
     26 
     27 def GiveExpiredSkin(skinID):
     28     sm.RemoteSvc('shipCosmeticsMgr').GMExpireSkinLicense(skinID)
     29 
     30 
     31 def _PickSkinForMaterialAndType(materialID, typeID):
     32     skins = _GetSkinsForTypeWithMaterial(materialID, typeID)
     33     if len(skins) == 0:
     34         message = 'No skins found for type {} that use material {}'.format(typeID, materialID)
     35         raise Error(message)
     36     else:
     37         if len(skins) == 1:
     38             return skins[0]
     39         return _SelectSkinFromList(skins)
     40 
     41 
     42 def _GetSkinsForTypeWithMaterial(materialID, typeID):
     43     static = sm.GetService('cosmeticsSvc').static
     44     return static.GetSkinsForTypeWithMaterial(typeID, materialID)
     45 
     46 
     47 def _SelectSkinFromList(skins):
     48     entry_list = [ (skin.internalName, skin) for skin in skins ]
     49     caption = 'AutoComplete: %d types found' % len(entry_list)
     50     selection = ListWnd(entry_list, listtype='generic', caption=caption)
     51     if len(selection) != 1:
     52         return None
     53     skin = selection[1]
     54     return skin
     55 
     56 
     57 def _SelectSkinDuration():
     58     result = QtyPopup(minvalue=1, setvalue=1, caption='SKIN Duration', label='Set SKIN duration in days')
     59     if result is None:
     60         return
     61     return int(result['qty'])
     62 
     63 
     64 def RemoveSkin(skinID):
     65     skin = sm.GetService('cosmeticsSvc').GetStaticSkinByID(skinID)
     66     if skin.isStructureSkin:
     67         licenseeID = session.corpid
     68     else:
     69         licenseeID = session.charid
     70     sm.RemoteSvc('shipCosmeticsMgr').RemoveSkin(skinID, licenseeID)