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()
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)
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)
class DURATION(object): 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()