def _removeItem(self, slotId, season=None): if self.__modifiedStyle is None: return elif slotId == self.STYLE_SLOT: self.__modifiedStyle = None self._modifiedOutfits = { s: self._service.getEmptyOutfit() for s in SeasonType.COMMON_SEASONS } return elif not self.__modifiedStyle.isEditable: return _logger.error( 'Failed to remove item from slotId: %s for style: %s. Style is not Editable', slotId, self.__modifiedStyle) else: season = season or self.season outfit = self._modifiedOutfits[season] vehicleCD = g_currentVehicle.item.descriptor.makeCompactDescr() baseOutfit = self.__modifiedStyle.getOutfit(season, vehicleCD=vehicleCD) fitOutfit(baseOutfit, getCurrentVehicleAvailableRegionsMap()) removeItemFromEditableStyle(outfit, baseOutfit, slotId) diff = getEditableStyleOutfitDiff(outfit, baseOutfit) self._ctx.stylesDiffsCache.saveDiff(self.__modifiedStyle, season, diff) return
def __buildList(self): data = [] if self.__style is None: return data else: vehicleDescriptor = g_currentVehicle.item.descriptor purchaseItems = self.__ctx.mode.getPurchaseItems() seasonPurchaseItems = { season: [] for season in SeasonType.COMMON_SEASONS } for pItem in purchaseItems: if pItem.group not in SeasonType.COMMON_SEASONS: continue seasonPurchaseItems[pItem.group].append(pItem) availableRegionsMap = getCurrentVehicleAvailableRegionsMap() for season in SEASONS_ORDER: seasonGroupVO = self.__getSeasonGroupVO(season) data.append(seasonGroupVO) itemsData = self.__getSeasonItemsData( season, seasonPurchaseItems[season], availableRegionsMap, vehicleDescriptor) data.extend(itemsData) return data
def _onStart(self): if self._ctx.modeId != CustomizationModes.STYLED: _logger.error( 'Failed to start Style Edit Mode. Style Edit Mode could be started only from Styled mode.' ) self._ctx.changeMode(CustomizationModes.STYLED) return outfit = self._ctx.mode.currentOutfit if not outfit.id: _logger.error('Failed to start Style Edit Mode. No applied style.') self._ctx.changeMode(CustomizationModes.STYLED) return style = self._service.getItemByID(GUI_ITEM_TYPE.STYLE, outfit.id) if not style.isEditable: _logger.error( 'Failed to start Style Edit Mode. Applied style is not editable.' ) self._ctx.changeMode(CustomizationModes.STYLED) return self._isInited = False self.__style = style vehicleCD = g_currentVehicle.item.descriptor.makeCompactDescr() availableRegionsMap = getCurrentVehicleAvailableRegionsMap() for season in SeasonType.COMMON_SEASONS: baseOutfit = self.__style.getOutfit(season, vehicleCD) fitOutfit(baseOutfit, availableRegionsMap) self.__baseOutfits[season] = baseOutfit serverSettings = self._settingsCore.serverSettings if style.isProgressionRequired: hintShown = bool( serverSettings.getOnceOnlyHintsSetting( OnceOnlyHints. C11N_PROGRESSION_REQUIRED_STYLE_SLOT_BUTTON_HINT)) if not hintShown: serverSettings.setOnceOnlyHintsSettings({ OnceOnlyHints.C11N_PROGRESSION_REQUIRED_STYLE_SLOT_HINT: HINT_SHOWN_STATUS, OnceOnlyHints.C11N_PROGRESSION_REQUIRED_STYLE_SLOT_BUTTON_HINT: HINT_SHOWN_STATUS, OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_HINT: HINT_SHOWN_STATUS, OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_BUTTON_HINT: HINT_SHOWN_STATUS }) else: hintShown = bool( serverSettings.getOnceOnlyHintsSetting( OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_BUTTON_HINT)) if not hintShown: serverSettings.setOnceOnlyHintsSettings({ OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_HINT: HINT_SHOWN_STATUS, OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_BUTTON_HINT: HINT_SHOWN_STATUS }) super(EditableStyleMode, self)._onStart()
def _fitOutfits(self, modifiedOnly=False): availableRegionsMap = getCurrentVehicleAvailableRegionsMap() for season in SeasonType.COMMON_SEASONS: fitOutfit(self._modifiedOutfits[season], availableRegionsMap) if not modifiedOnly: fitOutfit(self._originalOutfits[season], availableRegionsMap)