def _detectCurrentScreen(): global _isConnecting if Waiting.isVisible(): BigWorld.callback(0.2, lambda : _detectCurrentScreen()) return if g_windowsManager.window is None or g_windowsManager.window.containerManager is None: BigWorld.callback(0.2, lambda : _detectCurrentScreen()) return dialogsContainer = g_windowsManager.window.containerManager.getContainer(ViewTypes.TOP_WINDOW) if dialogsContainer is not None: dialog = dialogsContainer.getView(criteria={POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.EULA}) if dialog is not None: dialog.onApply() dialog = dialogsContainer.getView(criteria={POP_UP_CRITERIA.VIEW_ALIAS: 'tGreetingDialog'}) if dialog is not None: dialog.cancel() view = g_windowsManager.window.containerManager.getView(ViewTypes.DEFAULT) if view and view.settings.alias == VIEW_ALIAS.LOGIN and view._isCreated() and connectionManager.isDisconnected() and not _isConnecting: _isConnecting = True _connect() BigWorld.callback(0.2, lambda : _detectCurrentScreen()) return view = g_windowsManager.window.containerManager.getView(ViewTypes.DEFAULT) if view is not None and view.settings.alias == 'lobby': if _justLogin: return subView = g_windowsManager.window.containerManager.getView(ViewTypes.LOBBY_SUB) if subView.settings.alias == 'hangar': _leaveDevRoom() BigWorld.callback(0.2, lambda : _detectCurrentScreen()) return if subView.settings.alias == 'trainingRoom': _enterBattle() return BigWorld.callback(0.2, lambda : _detectCurrentScreen())
def __onMouseEnter(self, entity): if Waiting.isVisible(): return False if not self._filterEntity(entity): return False self.__selected3DEntity = entity self.__highlight3DEntity(entity) return True
def setIsViewReadyAfterWheelFinish(self): if Waiting.isVisible(): self.__callbackId = BigWorld.callback( 0.1, self.setIsViewReadyAfterWheelFinish) else: self.__callbackId = None self.viewModel.setIsViewReady(True) return
def __checkToSkipUpdate(self): if self.__isForcedDisabled: return True if not self.__camera or self.__camera != BigWorld.camera(): return True if self.__isInIdle: return True if Waiting.isVisible(): return True return True if not self.__isWindowAccessible else False
def __update(self): isUpdateSkipped = Waiting.isVisible() if isUpdateSkipped or self.__wasPreviousUpdateSkipped: self.__wasPreviousUpdateSkipped = isUpdateSkipped self.measureDeltaTime() return 0.0 self.__curTime += self.measureDeltaTime() / self.cameraUpcomingDuration isCameraDone = self.__curTime >= 1.0 if isCameraDone: self._finishCameraMovement() else: self.__updateCameraLocation() return 0.0
def _on3DObjectMouseEnter(self, entity): if Waiting.isVisible(): return else: self.__selected3DEntity = entity if not self.hangarSpace.isCursorOver3DScene: return if entity is None: return self._highlight3DEntityAndShowTT(entity) if entity.mouseOverSoundName: SoundGroups.g_instance.playSound3D(entity.model.root, entity.mouseOverSoundName) return
def __checkToSkipUpdate(self): if not self.__camera or self.__camera != BigWorld.camera(): return True if self.__isInIdle: return True if Waiting.isVisible(): return True if not self.__isWindowAccessible: return True currentYaw = Math.Matrix(self.__camera.invViewMatrix).yaw currentPitch = Math.Matrix(self.__camera.invViewMatrix).pitch goalYaw = Math.Matrix(self.__camera.source).yaw goalPitch = -Math.Matrix(self.__camera.source).pitch return True if abs(goalYaw - currentYaw) > 0.001 or abs(goalPitch - currentPitch) > 0.001 else False
def doLogin(self, userName, password, serverName, isSocialToken2Login): if Waiting.isVisible(): return False result = self.__validateCredentials(userName.lower().strip(), password.strip(), self.isToken2()) if result.isValid: if not Waiting.isOpened('login'): Waiting.show('login') self._loginManager.initiateLogin( userName, password, serverName, isSocialToken2Login, isSocialToken2Login or self._rememberUser) else: self._view.as_setErrorMessageS(result.errorMessage, result.invalidFields) return True
def _detectCurrentScreen(): global _isConnecting if Waiting.isVisible(): BigWorld.callback(0.2, _detectCurrentScreen) return else: lobby = _getLobby() if lobby is None or lobby.containerManager is None: BigWorld.callback(0.2, _detectCurrentScreen) return dialogsContainer = lobby.containerManager.getContainer( WindowLayer.TOP_WINDOW) if dialogsContainer is not None: dialog = dialogsContainer.getView( criteria={POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.EULA}) if dialog is not None: dialog.onApply() dialog = dialogsContainer.getView( criteria={POP_UP_CRITERIA.VIEW_ALIAS: 'tGreetingDialog'}) if dialog is not None: dialog.cancel() view = lobby.containerManager.getView(WindowLayer.VIEW) connectionMgr = dependency.instance(IConnectionManager) if view and view.alias == VIEW_ALIAS.LOGIN and view.isCreated( ) and connectionMgr.isDisconnected() and not _isConnecting: _isConnecting = True _connect() BigWorld.callback(0.2, _detectCurrentScreen) return view = lobby.containerManager.getView(WindowLayer.VIEW) if view is not None and view.alias == 'lobby': if _justLogin: return subView = lobby.containerManager.getView(WindowLayer.SUB_VIEW) if subView.alias == 'hangar': _leaveDevRoom() BigWorld.callback(0.2, _detectCurrentScreen) return if subView.alias == 'trainingRoom': _enterBattle() return BigWorld.callback(0.2, _detectCurrentScreen) return
def hideWaiting(self, messageID): if Waiting.isVisible(): Waiting.hide('tutorial-{0:>s}'.format(messageID))
def getSceneID(self): result = None if not Waiting.isVisible(): guiPage = self.uiHolder.currentInterface result = self.config.getSceneID(guiPage) return result
def __setHangarReady(self): if Waiting.isVisible(): BigWorld.callback(0.1, self.__setHangarReady) else: self.viewModel.setHangarReady(True)
def hideWaiting(self, messageID): if Waiting.isVisible(): Waiting.hide('tutorial-{0:>s}'.format(messageID))
def getSceneID(self): result = None if not Waiting.isVisible(): guiPage = self.uiHolder.currentInterface result = self.config.getSceneID(guiPage) return result
def __call__(self, account, ob, **kw): adaptedOB = super(IWaitingScreenAdapter, self).__call__(account, ob, **kw) adaptedOB['isVisible'] = Waiting.isVisible() return adaptedOB