def __manageCamera(self): isCameraRotationEnabled = True if self.visible: formattedNumber = formatPersonalNumber(self._currentNumber, self._digitsCount) isCameraRotationEnabled = isPersonalNumberAllowed(formattedNumber) self.__ctx.c11nCameraManager.enableMovementByMouse( enableRotation=isCameraRotationEnabled)
def __configurePersonalNumberComponent(self, component, item): if not component.number: return if not self.__editModeEnabled and item.digitsCount != len(component.number): number = fitPersonalNumber(component.number, item.digitsCount) number = formatPersonalNumber(number, item.digitsCount) if isPersonalNumberAllowed(number): component.number = number else: component.number = EMPTY_PERSONAL_NUMBER BigWorld.callback(0.0, lambda : self._events.onPersonalNumberCleared(number))
def stop(self): if not self.visible: return else: newNumber = formatPersonalNumber(self._currentNumber, self._digitsCount) if isPersonalNumberAllowed(newNumber): self._currentNumber = newNumber self.hide() return if self.__storedNumber is not None: newNumber = formatPersonalNumber(self.__storedNumber, self._digitsCount) if isPersonalNumberAllowed(newNumber): self._currentNumber = newNumber self.hide() return item = self.__ctx.mode.getItemFromSlot(self.__slotId) if item is not None: self.__showProhibitedNumberSystemMsg(item, newNumber) self.hide() self.__ctx.mode.removeItem(self.__slotId) return
def sendChar(self, char): if len(self._currentNumber) == self._digitsCount: SoundGroups.g_instance.playSound2D(SOUNDS.CUST_CHOICE_NUMBER_OVER) self.__showEditHint() return newNumber = self._currentNumber + char if len(newNumber) == self._digitsCount and not isPersonalNumberAllowed( newNumber): self.__showProhibitedHint(newNumber) return self._currentNumber = newNumber SoundGroups.g_instance.playSound2D(SOUNDS.CUST_CHOICE_NUMBER) if len(self._currentNumber) == self._digitsCount: self.__showConfirmitionHint() else: self.__showPromptHint()
def cancel(self): if not self.visible: return else: if self.__storedNumber is None: self.hide() self.__ctx.mode.removeItem(self.__slotId) else: newNumber = fitPersonalNumber(self.__storedNumber, self._digitsCount) newNumber = formatPersonalNumber(newNumber, self._digitsCount) if isPersonalNumberAllowed(newNumber): self._currentNumber = newNumber self.hide() else: self.__showProhibitedHint(newNumber) self.__storedNumber = None SoundGroups.g_instance.playSound2D(SOUNDS.CUST_CHOICE_ESC) return
def finish(self, cancelIfEmpty=False): if not self.visible: return if self._currentNumber == EMPTY_PERSONAL_NUMBER: if cancelIfEmpty: self.cancel() else: self.__showPromptHint(showImmediately=True) return newNumber = formatPersonalNumber(self._currentNumber, self._digitsCount) if isPersonalNumberAllowed(newNumber): SoundGroups.g_instance.playSound2D(SOUNDS.CUST_CHOICE_ENTER) self._currentNumber = newNumber self.hide() elif not self.__isProhibitedHintShown: self.__prohibitedHintShown(True) self.__showProhibitedHint(newNumber) self.delayCallback(_DEFAULT_HINT_DURATION * 0.001, lambda: self.__prohibitedHintShown(False))
def update(self, slotId): item = self.__ctx.mode.getItemFromSlot(slotId) if item is not None and item.itemTypeID == GUI_ITEM_TYPE.PERSONAL_NUMBER: self._digitsCount = item.digitsCount else: self.hide() return if self.visible: if item.digitsCount <= len(self.__currentNumber): newNumber = fitPersonalNumber(self._currentNumber, item.digitsCount) newNumber = formatPersonalNumber(newNumber, item.digitsCount) if isPersonalNumberAllowed(newNumber): self._currentNumber = newNumber else: self._currentNumber = EMPTY_PERSONAL_NUMBER self.__showProhibitedHint(newNumber) return else: component = self.__ctx.mode.getComponentFromSlot(slotId) if component is not None and not component.isFilled(): self.start(slotId) return