コード例 #1
0
    def __gatherDataForVehicle(self, updateReason, invalidItems):
        if updateReason in (CACHE_SYNC_REASON.DOSSIER_RESYNC, CACHE_SYNC_REASON.SHOP_RESYNC, VEHICLE_CHANGED_EVENT):
            self.__vehicleInventoryID = g_currentVehicle.item.invID
            curVehItem = _g_currentVehicle.item
            curVehDescr = curVehItem.descriptor
            self.__cNationID = curVehDescr.type.customizationNationID
            inDossier = (_g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('camouflages'), _g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('emblems'), _g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('inscriptions'))
            self.__rawItems = [_g_vehiclesCache.customization(self.__cNationID)['camouflages'], _g_vehiclesCache.playerEmblems()[1], _g_vehiclesCache.customization(self.__cNationID)['inscriptions']]
            self.__itemGroups = (_g_vehiclesCache.customization(self.__cNationID)['camouflageGroups'], _g_vehiclesCache.playerEmblems()[0], _g_vehiclesCache.customization(self.__cNationID)['inscriptionGroups'])
            self.__availableGroupNames = []
            self.__displayedItems = [{}, {}, {}]
            self.__availableItems = [{}, {}, {}]
            self.__igrReplacedItems = [{}, {}, {}]
            self.__notMigratedItems = [set([]), set([]), set([])]
            inventoryItems = self.__setInventoryItems()
            installedRawItems = self.__setInstalledRawItems(curVehDescr)
            self.__installed = self.__setInstalledCustomization(curVehDescr.hull['emblemSlots'], curVehDescr.turret['emblemSlots'], installedRawItems)
            for cType in [CUSTOMIZATION_TYPE.CAMOUFLAGE, CUSTOMIZATION_TYPE.EMBLEM, CUSTOMIZATION_TYPE.INSCRIPTION]:
                self.__fillAvailableItems(cType, inDossier)
                self.__fillDisplayedItems(cType, inventoryItems)
                self.__fillDisplayedGroups(cType, inDossier, inventoryItems)

            self.updated(updateReason == VEHICLE_CHANGED_EVENT)
コード例 #2
0
    def __gatherDataForVehicle(self, updateReason, invalidItems):
        if updateReason in (CACHE_SYNC_REASON.DOSSIER_RESYNC,
         CACHE_SYNC_REASON.SHOP_RESYNC,
         _IGR_TYPE_CHANGED,
         VEHICLE_CHANGED_EVENT,
         EVENTS_UPDATED_EVENT):
            self.__displayIgrItems = getIGRCtrl().getRoomType() == 2 and GUI_SETTINGS.igrEnabled
            self.__vehicleInventoryID = g_currentVehicle.item.invID
            curVehItem = _g_currentVehicle.item
            curVehDescr = curVehItem.descriptor
            self.__cNationID = curVehDescr.type.customizationNationID
            inDossier = (_g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('camouflages'), _g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('emblems'), _g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('inscriptions'))
            self.__rawItems = [_g_vehiclesCache.customization(self.__cNationID)['camouflages'], _g_vehiclesCache.playerEmblems()[1], _g_vehiclesCache.customization(self.__cNationID)['inscriptions']]
            self.__itemGroups = (_g_vehiclesCache.customization(self.__cNationID)['camouflageGroups'], _g_vehiclesCache.playerEmblems()[0], _g_vehiclesCache.customization(self.__cNationID)['inscriptionGroups'])
            inQuests = self.__getQuestItems()
            self.__availableGroupNames = [set([]), set([]), set([])]
            self.__displayedItems = [{}, {}, {}]
            self.__availableItems = [{}, {}, {}]
            self.__igrReplacedItems = [{}, {}, {}]
            self.__notMigratedItems = [set([]), set([]), set([])]
            self.__associatedQuests = [{}, {}, {}]
            inventoryItems = self.getInventoryItems(self.__cNationID, self.__rawItems)
            installedRawItems = self.__setInstalledRawItems(curVehDescr)
            self.__installed = self.__setInstalledCustomization(curVehDescr.hull['emblemSlots'], curVehDescr.turret['emblemSlots'], installedRawItems)
            for cType in CUSTOMIZATION_TYPE.ALL:
                self.__fillAvailableItems(cType, inDossier, inQuests, inventoryItems)
                self.__fillDisplayedItems(cType)
                self.__fillDisplayedGroups(cType)

            if updateReason == VEHICLE_CHANGED_EVENT:
                needReset = True
            elif updateReason == EVENTS_UPDATED_EVENT:
                needReset = self.__isQuestsChanged(inQuests)
            else:
                needReset = False
            self.__associatedQuests = inQuests
            self.updated(needReset)
コード例 #3
0
ファイル: data_aggregator.py プロジェクト: webiumsk/WOT0.10.0
    def __gatherDataForVehicle(self, updateReason, invalidItems):
        if updateReason in (CACHE_SYNC_REASON.DOSSIER_RESYNC, CACHE_SYNC_REASON.SHOP_RESYNC):
            curVehItem = _g_currentVehicle.item
            curVehDescr = curVehItem.descriptor
            curVehDict = {'camouflages': list(curVehDescr.camouflages),
             'emblems': list(curVehDescr.playerEmblems),
             'inscriptions': list(curVehDescr.playerInscriptions)}
            inDossier = (_g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('camouflages'), _g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('emblems'), _g_itemsCache.items.getVehicleDossier(curVehItem.intCD).getBlock('inscriptions'))
            rawItems = [_g_vehiclesCache.customization(curVehItem.nationID)['camouflages'], _g_vehiclesCache.playerEmblems()[1], _g_vehiclesCache.customization(curVehItem.nationID)['inscriptions']]
            itemGroups = (_g_vehiclesCache.customization(curVehItem.nationID)['camouflageGroups'], _g_vehiclesCache.playerEmblems()[0], _g_vehiclesCache.customization(curVehItem.nationID)['inscriptionGroups'])
            self.__availableGroupNames = []
            self.__displayedItems = [{}, {}, {}]
            self.__availableItems = [{}, {}, {}]
            inventoryItems = self.__setInventoryItems(rawItems)
            for cType in [CUSTOMIZATION_TYPE.CAMOUFLAGE, CUSTOMIZATION_TYPE.EMBLEM, CUSTOMIZATION_TYPE.INSCRIPTION]:
                groups = []
                uniqueGroups = []
                for key, value in itemGroups[cType].iteritems():
                    if cType == CUSTOMIZATION_TYPE.CAMOUFLAGE:
                        itemIDsInGroup = value['ids']
                        groupUserName = value['userString']
                        groupIsInShop = not key.startswith('IGR') or self.__displayIgrItems
                    else:
                        itemIDsInGroup = value[0]
                        groupUserName = _ms(value[1])
                        groupIsInShop = self.__groupIsInShop(key, cType)
                    if groupIsInShop and key not in uniqueGroups:
                        uniqueGroups.append(key)
                        groups.append((key, groupUserName))
                    for itemID in list(inDossier[cType]) + inventoryItems[cType].keys():
                        if itemID in itemIDsInGroup and key not in uniqueGroups:
                            uniqueGroups.append(key)
                            groups.append((key, groupUserName))

                self.__availableGroupNames.append(groups)
                self.__fillAvailableItems(cType, inDossier, rawItems, itemGroups)
                self.__fillDisplayedItems(cType, inventoryItems)

            installedRawItems = self.__setInstalledRawItems(curVehDescr)
            self.__installed = self.__setInstalledCustomization(curVehDescr.hull['emblemSlots'], curVehDescr.turret['emblemSlots'], installedRawItems)
            self.updated()
コード例 #4
0
    PERMANENT = 0
    MONTH = 30
    WEEK = 7
    ALL = (PERMANENT, MONTH, WEEK)


SLOT_TYPE = {CUSTOMIZATION_TYPE.EMBLEM: 'player',
 CUSTOMIZATION_TYPE.INSCRIPTION: 'inscription'}
TYPE_NAME = {'emblems': CUSTOMIZATION_TYPE.EMBLEM,
 'inscriptions': CUSTOMIZATION_TYPE.INSCRIPTION,
 'camouflages': CUSTOMIZATION_TYPE.CAMOUFLAGE}
_ITEM_CLASS = {CUSTOMIZATION_TYPE.EMBLEM: AvailableEmblem,
 CUSTOMIZATION_TYPE.INSCRIPTION: AvailableInscription,
 CUSTOMIZATION_TYPE.CAMOUFLAGE: AvailableCamouflage}
_ITEM_CONTAINER = {CUSTOMIZATION_TYPE.CAMOUFLAGE: lambda nationId, itemId: _g_vehiclesCache.customization(nationId)['camouflages'][itemId],
 CUSTOMIZATION_TYPE.EMBLEM: lambda _, itemId: _g_vehiclesCache.playerEmblems()[1][itemId],
 CUSTOMIZATION_TYPE.INSCRIPTION: lambda nationId, itemId: _g_vehiclesCache.customization(nationId)['inscriptions'][itemId]}
_ITEM_GROUP = {CUSTOMIZATION_TYPE.CAMOUFLAGE: lambda nationId: _g_vehiclesCache.customization(nationId)['camouflageGroups'],
 CUSTOMIZATION_TYPE.EMBLEM: lambda _: _g_vehiclesCache.playerEmblems()[0],
 CUSTOMIZATION_TYPE.INSCRIPTION: lambda nationId: _g_vehiclesCache.customization(nationId)['inscriptionGroups']}
_MAX_HULL_SLOTS = 2
_MAX_TURRET_SLOTS = 2
VEHICLE_CHANGED_EVENT = 'VEHICLE_CHANGED_EVENT'
EVENTS_UPDATED_EVENT = 'EVENTS_UPDATED_EVENT'
_IGR_TYPE_CHANGED = 'IGR_TYPE_CHANGED'

class DataAggregator(object):

    def __init__(self):
        self.updated = Event()
        self.viewModel = []