def _dispose(self): """ Dispose method should never be called before populate finish. So, we're delaying its invoke til populate load is finished. """ self.removeListener(LobbySimpleEvent.HIDE_HANGAR, self._onCustomizationShow) self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self.__onNotifyCursorOver3dScene) self.removeListener(LobbySimpleEvent.WAITING_SHOWN, self.__onWaitingShown, EVENT_BUS_SCOPE.LOBBY) g_itemsCache.onSyncCompleted -= self.onCacheResync g_clientUpdateManager.removeObjectCallbacks(self) g_playerEvents.onVehicleBecomeElite -= self.__onVehicleBecomeElite g_playerEvents.onBattleResultsReceived -= self.onFittingUpdate g_currentVehicle.onChanged -= self.__onCurrentVehicleChanged game_control.g_instance.igr.onIgrTypeChanged -= self.__onIgrTypeChanged game_control.g_instance.fallout.onSettingsChanged -= self.__switchCarousels g_hangarSpace.onObjectSelected -= self.__on3DObjectSelected g_hangarSpace.onObjectUnselected -= self.__on3DObjectUnSelected g_hangarSpace.onObjectClicked -= self.__on3DObjectClicked g_prbCtrlEvents.onVehicleClientStateChanged -= self.__onVehicleClientStateChanged if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None self.closeHelpLayout() self.stopGlobalListening() LobbySubView._dispose(self) return
def highlight(self, enable, forceSimpleEdge=False): if self.isDisabled or self.__vehicle is None: return else: vehicle = self.__vehicle if self.isOn: BigWorld.wgDelEdgeDetectEntity(vehicle) args = (0, 1, True) if enable: self.__highlightStatus |= self.HIGHLIGHT_ON if self.__isPlayersVehicle: if forceSimpleEdge: self.__highlightStatus |= self.HIGHLIGHT_SIMPLE args = (0, 0, False) else: args = (0, 1, True) else: arenaDP = self.sessionProvider.getArenaDP() isAllyTeam = arenaDP.isAllyTeam(vehicle.publicInfo['team']) args = (2, 0, False) if isAllyTeam else (1, 0, False) else: if self.__isPlayersVehicle and forceSimpleEdge: self.__highlightStatus &= ~self.HIGHLIGHT_SIMPLE args = (0, 1, True) self.__highlightStatus &= ~self.HIGHLIGHT_ON self.__doHighlightOperation(self.__highlightStatus, args) return
def _dispose(self): """ Dispose method should never be called before populate finish. So, we're delaying its invoke til populate load is finished. """ self.removeListener(LobbySimpleEvent.HIDE_HANGAR, self._onCustomizationShow) self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self.__onNotifyCursorOver3dScene) self.removeListener(LobbySimpleEvent.WAITING_SHOWN, self.__onWaitingShown, EVENT_BUS_SCOPE.LOBBY) self.removeListener(events.FightButtonEvent.FIGHT_BUTTON_UPDATE, self.__handleFightButtonUpdated, scope=EVENT_BUS_SCOPE.LOBBY) self.itemsCache.onSyncCompleted -= self.onCacheResync g_clientUpdateManager.removeObjectCallbacks(self) g_currentVehicle.onChanged -= self.__onCurrentVehicleChanged self.igrCtrl.onIgrTypeChanged -= self.__onIgrTypeChanged self.falloutCtrl.onSettingsChanged -= self.__onFalloutSettingsChanged self.rankedController.onUpdated -= self.onRankedUpdate self.rankedController.onPrimeTimeStatusUpdated -= self.__onRankedPrimeStatusUpdate g_hangarSpace.onObjectSelected -= self.__on3DObjectSelected g_hangarSpace.onObjectUnselected -= self.__on3DObjectUnSelected g_hangarSpace.onObjectClicked -= self.__on3DObjectClicked g_prbCtrlEvents.onVehicleClientStateChanged -= self.__onVehicleClientStateChanged if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None self.closeHelpLayout() self.stopGlobalListening() LobbySubView._dispose(self) return
def __clearEdgedVehicles(self): for v in self.__edgedVehicles: if v is not None: BigWorld.wgDelEdgeDetectEntity(v) self.__edgedVehicles = [] return
def highlight(self, enable, forceSimpleEdge = False): if self.__vehicle is None: return else: vehicle = self.__vehicle if self.__highlightStatus != self.HIGHLIGHT_OFF: BigWorld.wgDelEdgeDetectEntity(vehicle) args = (0, 1, True) if enable: if vehicle.isPlayerVehicle: if forceSimpleEdge: self.__highlightStatus |= self.HIGHLIGHT_SIMPLE args = (0, 0, False) else: self.__highlightStatus |= self.HIGHLIGHT_ON args = (0, 1, True) else: self.__highlightStatus |= self.HIGHLIGHT_ON arenaDP = g_sessionProvider.getArenaDP() isAllyTeam = arenaDP.isAllyTeam(vehicle.publicInfo['team']) args = (2, 0, False) if isAllyTeam else (1, 0, False) elif vehicle.isPlayerVehicle and forceSimpleEdge: self.__highlightStatus &= ~self.HIGHLIGHT_SIMPLE args = (0, 1, True) else: self.__highlightStatus &= ~self.HIGHLIGHT_ON self.__doHighlightOperation(self.__highlightStatus, args) return
def _dispose(self): self.removeListener(LobbySimpleEvent.HIDE_HANGAR, self._onCustomizationShow) self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self.__onNotifyCursorOver3dScene) self.removeListener(LobbySimpleEvent.WAITING_SHOWN, self.__onWaitingShown, EVENT_BUS_SCOPE.LOBBY) g_itemsCache.onSyncCompleted -= self.onCacheResync g_clientUpdateManager.removeObjectCallbacks(self) g_playerEvents.onVehicleBecomeElite -= self.__onVehicleBecomeElite g_playerEvents.onBattleResultsReceived -= self.onFittingUpdate g_currentVehicle.onChanged -= self.__onCurrentVehicleChanged game_control.g_instance.igr.onIgrTypeChanged -= self.__onIgrTypeChanged game_control.g_instance.serverStats.onStatsReceived -= self.__onStatsReceived game_control.g_instance.fallout.onSettingsChanged -= self.__switchCarousels g_hangarSpace.onObjectSelected -= self.__on3DObjectSelected g_hangarSpace.onObjectUnselected -= self.__on3DObjectUnSelected g_hangarSpace.onObjectClicked -= self.__on3DObjectClicked g_prbCtrlEvents.onVehicleClientStateChanged -= self.__onVehicleClientStateChanged if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None self.closeHelpLayout() self.stopGlobalListening() LobbySubView._dispose(self) return
def _dispose(self): """ Dispose method should never be called before populate finish. So, we're delaying its invoke til populate load is finished. """ self.removeListener(LobbySimpleEvent.HIDE_HANGAR, self._onCustomizationShow) self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self.__onNotifyCursorOver3dScene) self.removeListener(LobbySimpleEvent.WAITING_SHOWN, self.__onWaitingShown, EVENT_BUS_SCOPE.LOBBY) g_itemsCache.onSyncCompleted -= self.onCacheResync g_clientUpdateManager.removeObjectCallbacks(self) g_playerEvents.onVehicleBecomeElite -= self.__onVehicleBecomeElite g_playerEvents.onBattleResultsReceived -= self.onFittingUpdate g_currentVehicle.onChanged -= self.__onCurrentVehicleChanged self.igrCtrl.onIgrTypeChanged -= self.__onIgrTypeChanged self.falloutCtrl.onSettingsChanged -= self.__switchCarousels g_hangarSpace.onObjectSelected -= self.__on3DObjectSelected g_hangarSpace.onObjectUnselected -= self.__on3DObjectUnSelected g_hangarSpace.onObjectClicked -= self.__on3DObjectClicked g_prbCtrlEvents.onVehicleClientStateChanged -= self.__onVehicleClientStateChanged if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None self.closeHelpLayout() self.stopGlobalListening() LobbySubView._dispose(self) return
def __doHighlightOperation(self, status, args): if status & self.HIGHLIGHT_ON: BigWorld.wgAddEdgeDetectEntity(self.__vehicle, self.__collisions, args[0], args[1], args[2], args[3]) else: BigWorld.wgDelEdgeDetectEntity(self.__vehicle) self.__updateHighlightComponent(status, args)
def highlight(self, show): if show: if not self.__edged and self.__enabled: BigWorld.wgAddEdgeDetectEntity(self, 0, 2) self.__edged = True elif self.__edged: BigWorld.wgDelEdgeDetectEntity(self) self.__edged = False
def view_edge(self): if hasattr(self.autoaim_vehicle, 'appearance') and hasattr(self.autoaim_vehicle, 'model') and self.autoaim_vehicle.isAlive(): BigWorld.wgDelEdgeDetectEntity(self.autoaim_vehicle) if BigWorld.wg_collideSegment(BigWorld.player().spaceID, self.autoaim_vehicle.appearance.compoundModel.position, BigWorld.entity(BigWorld.player().playerVehicleID).appearance.compoundModel.position, False) is None: BigWorld.wgSetEdgeDetectColors((Math.Vector4(self._autoaim_def), Math.Vector4(self._enemy), Math.Vector4(self._friend), Math.Vector4(self._autoaim))) BigWorld.wgAddEdgeDetectEntity(self.autoaim_vehicle, 3, 0) self.view_edge_callback = BigWorld.callback(0.5, self.view_edge) return
def highlight(self, show): if show: if not self.__edged and self.__enabled: BigWorld.wgAddEdgeDetectEntity(self, 0, 2, True) self.__edged = True elif self.__edged: BigWorld.wgDelEdgeDetectEntity(self) self.__edged = False
def deactivate(self): if self.isDisabled or self.__vehicle is None: return else: if self.isOn: BigWorld.wgDelEdgeDetectEntity(self.__vehicle) self.__highlightStatus &= ~self.HIGHLIGHT_ON self.__vehicle = None return
def deactivate(self): if self.__vehicle is None: return else: if self.__highlightStatus != self.HIGHLIGHT_OFF: BigWorld.wgDelEdgeDetectEntity(self.__vehicle) self.__highlightStatus = self.HIGHLIGHT_OFF self.__vehicle = None return
def show(self, isVisible): if self.model is not None: if isVisible: if not self.model.visible: BigWorld.wgAddEdgeDetectEntity(self, 3, 2) elif self.model.visible: BigWorld.wgDelEdgeDetectEntity(self) self.model.visible = isVisible return
def highlight(self, show): if show: if not self.__edged and self.__enabled: BigWorld.wgAddEdgeDetectEntity(self, 0, self.__edgeMode, True) self.__edged = True self.onMouseEnter() elif self.__edged: BigWorld.wgDelEdgeDetectEntity(self) self.__edged = False self.onMouseLeave()
def stopVisual(self): assert self.isStarted if self.isPlayer: BigWorld.wgDelEdgeDetectEntity(self) self.__stopExtras() g_sessionProvider.getFeedback().stopVehicleVisual(self.id, self.isPlayer) self.appearance.destroy() self.appearance = None self.isStarted = False self.__stopWGPhysics()
def stopVisual(self): assert self.isStarted if self.isPlayer: BigWorld.wgDelEdgeDetectEntity(self) self.__stopExtras() g_sessionProvider.getFeedback().stopVehicleVisual( self.id, self.isPlayer) self.appearance.destroy() self.appearance = None self.isStarted = False self.__stopWGPhysics()
def show(self, isVisible): if self.model is not None: if isVisible: if not self.model.visible: BigWorld.wgAddEdgeDetectEntity(self, 3, 2, False) if self.__circleModel is not None: BigWorld.addModel(self.__circleModel) elif self.model.visible: BigWorld.wgDelEdgeDetectEntity(self) if self.__circleModel is not None: BigWorld.delModel(self.__circleModel) self.model.visible = isVisible return
def PlayerAvatar_targetBlur(self, prevEntity): if not isinstance(prevEntity, Vehicle.Vehicle): return if self.inputHandler.aim: self.inputHandler.aim.clearTarget() TriggersManager.g_manager.deactivateTrigger(TRIGGER_TYPE.AIM_AT_VEHICLE) BigWorld.wgDelEdgeDetectEntity(prevEntity) global gExpertTarget if gExpertTarget is None and self._PlayerAvatar__maySeeOtherVehicleDamagedDevices: #print 'PlayerAvatar_targetBlur monitor {0}'.format(0) #FLUSH_LOG() self.cell.monitorVehicleDamagedDevices(0) g_windowsManager.battleWindow.damageInfoPanel.hide()
def _dispose(self): super(LobbySelectableView, self)._dispose() self.hangarSpace.onMouseEnter -= self._on3DObjectMouseEnter self.hangarSpace.onMouseExit -= self._on3DObjectMouseExit self.hangarSpace.onMouseDown -= self._on3DObjectMouseDown self.hangarSpace.onMouseUp -= self._on3DObjectMouseUp self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self._onNotifyCursorOver3dScene) self.__selected3DEntityUnderMouseDown = None if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None return
def _dispose(self): super(LobbySelectableView, self)._dispose() if self._objectSelectionEnabled: g_hangarSpace.onObjectSelected -= self._on3DObjectSelected g_hangarSpace.onObjectUnselected -= self._on3DObjectUnSelected g_hangarSpace.onObjectClicked -= self._on3DObjectClicked g_hangarSpace.onObjectReleased -= self._on3DObjectReleased self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self._onNotifyCursorOver3dScene) self.__selected3DEntityOnClick = None if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None return
def keypressed(self): if self.__enableRenderModel: if g_appLoader.getDefBattleApp() is not None: g_appLoader.getDefBattleApp().call('battle.PlayerMessagesPanel.ShowMessage', ['0', 'Ally Outlines OFF', 'gold']) self.__enableRenderModel = False for v in BigWorld.entities.values(): if type(v) is Vehicle: BigWorld.wgDelEdgeDetectEntity(v) elif g_appLoader.getDefBattleApp() is not None: self.__enableRenderModel = True g_appLoader.getDefBattleApp().call('battle.PlayerMessagesPanel.ShowMessage', ['0', 'Ally Outlines ON', 'gold']) BigWorld.Silouhette.ally_silouhette() return
def ally_silouhette(self): if self.__enableRenderModel: try: BigWorld.wgSetEdgeDetectColors((self.__color, self.__enemyhigh, self.__allyhigh)) player = BigWorld.player() if player is not None: if hasattr(player, 'isOnArena'): curCtrl = getattr(getattr(BigWorld.player(), 'inputHandler', None), 'ctrl', None) if player.isOnArena: for v in BigWorld.entities.values(): if isinstance(v, Vehicle): if v.isAlive() and v.isStarted: if v.publicInfo['team'] is BigWorld.player().team: target = BigWorld.target() if BigWorld.entity(BigWorld.player().playerVehicleID) is not None and BigWorld.entity(v.id) is not None: distance = (BigWorld.entity(BigWorld.player().playerVehicleID).position - BigWorld.entity(v.id).position).length else: distance = 1 if target is not None and target.id == v.id: BigWorld.wgDelEdgeDetectEntity(v) BigWorld.wgAddEdgeDetectEntity(v, 2, False) elif int(v.id) != int(BigWorld.player().playerVehicleID) and distance <= self.__distancevalue or self.__sniperonly == True and not isinstance(curCtrl, SniperControlMode): BigWorld.wgDelEdgeDetectEntity(v) elif int(v.id) == int(BigWorld.player().playerVehicleID): continue else: BigWorld.wgDelEdgeDetectEntity(v) BigWorld.wgAddEdgeDetectEntity(v, 0, False) else: BigWorld.wgDelEdgeDetectEntity(v) except TypeError as err: print ('[ally_silouhette] Error: ', err) return
def stopVisual(self): assert self.isStarted if self.isPlayer: BigWorld.wgDelEdgeDetectEntity(self) self.__stopExtras() if hasattr(self, 'marker'): manager = g_windowsManager.battleWindow.markersManager manager.destroyMarker(self.marker) self.marker = -1 self.appearance.destroy() self.appearance = None self.isStarted = False minimap = g_windowsManager.battleWindow.minimap minimap.notifyVehicleStop(self.id) self.__stopWGPhysics()
def stopVisual(self): assert self.isStarted if self.isPlayer: BigWorld.wgDelEdgeDetectEntity(self) self.__stopExtras() if hasattr(self, 'marker'): manager = g_windowsManager.battleWindow.vMarkersManager manager.destroyMarker(self.marker) self.marker = -1 self.appearance.destroy() self.appearance = None self.isStarted = False minimap = g_windowsManager.battleWindow.minimap minimap.notifyVehicleStop(self.id) self.__stopWGPhysics()
def __updateState(self, stateName): if self.__activeStateResource is not None: BigWorld.wgDelEdgeDetectEntity(self) self.model.matrix = None self.model = None self.__activeStateResource.deactivate() self.__activeStateResource = self.__stateResources.get(stateName, None) if self.__activeStateResource is not None: visualModel = self.__activeStateResource.activate(self.matrix) self.model = visualModel destructibleEntityComponent = BigWorld.player( ).arena.componentSystem.destructibleEntityComponent if destructibleEntityComponent is not None: destructibleEntityComponent.updateDestructibleEntityDestructionState( self) return
def stopVisual(self): if not self.isStarted: raise AssertionError if self.isPlayer: BigWorld.wgDelEdgeDetectEntity(self) self.__stopExtras() manager = hasattr(self, "marker") and g_windowsManager.battleWindow.vMarkersManager manager.destroyMarker(self.marker) self.marker = -1 self.appearance.destroy() self.appearance = None self.isStarted = False minimap = g_windowsManager.battleWindow.minimap minimap.notifyVehicleStop(self.id) self.__stopWGPhysics() return
def view_edge(self): if hasattr(self.autoaim_vehicle, 'appearance') and hasattr( self.autoaim_vehicle, 'model') and self.autoaim_vehicle.isAlive(): BigWorld.wgDelEdgeDetectEntity(self.autoaim_vehicle) if BigWorld.wg_collideSegment( BigWorld.player().spaceID, self.autoaim_vehicle.appearance. modelsDesc['gun']['model'].position, BigWorld.entity( BigWorld.player().playerVehicleID).appearance. modelsDesc['gun']['model'].position, False) is None: BigWorld.wgSetEdgeDetectColors( (Math.Vector4(self._autoaim_def), Math.Vector4(self._enemy), Math.Vector4(self._friend), Math.Vector4(self._autoaim))) BigWorld.wgAddEdgeDetectEntity(self.autoaim_vehicle, 3, 0) self.view_edge_callback = BigWorld.callback(0.5, self.view_edge)
def stopVisual(self): if not self.isStarted: raise AssertionError self.isPlayer and BigWorld.wgDelEdgeDetectEntity(self) self.__stopExtras() g_sessionProvider.getFeedback().stopVehicleVisual(self.id, self.isPlayer) self.appearance.destroy() self.appearance = None self.isStarted = False self.__stopWGPhysics() return
def _dispose(self): self.removeListener(LobbySimpleEvent.HIDE_HANGAR, self._onCustomizationShow) self.removeListener(LobbySimpleEvent.NOTIFY_CURSOR_OVER_3DSCENE, self.__onNotifyCursorOver3dScene) self.removeListener(LobbySimpleEvent.WAITING_SHOWN, self.__onWaitingShown, EVENT_BUS_SCOPE.LOBBY) g_itemsCache.onSyncCompleted -= self.onCacheResync g_clientUpdateManager.removeObjectCallbacks(self) g_playerEvents.onVehicleBecomeElite -= self.__onVehicleBecomeElite g_playerEvents.onBattleResultsReceived -= self.onFittingUpdate g_currentVehicle.onChanged -= self.__onCurrentVehicleChanged game_control.g_instance.igr.onIgrTypeChanged -= self.__onIgrTypeChanged game_control.g_instance.serverStats.onStatsReceived -= self.__onStatsReceived g_hangarSpace.onObjectSelected -= self.__on3DObjectSelected g_hangarSpace.onObjectUnselected -= self.__on3DObjectUnSelected g_prbCtrlEvents.onVehicleClientStateChanged -= self.__onVehicleClientStateChanged if self.__selected3DEntity is not None: BigWorld.wgDelEdgeDetectEntity(self.__selected3DEntity) self.__selected3DEntity = None self.closeHelpLayout() self.stopGlobalListening() LobbySubView._dispose(self) return
def removeEdge(self): if self.__edged: BigWorld.wgDelEdgeDetectEntity(self) self.__edged = False
def __clearEdgedVehicles(self): for v in self.__edgedVehicles: if v is not None: BigWorld.wgDelEdgeDetectEntity(v) self.__edgedVehicles = []
def __onVehicleLeaveWorld(self, vehicle): if vehicle in self.__edgedVehicles: self.__edgedVehicles.remove(vehicle) BigWorld.wgDelEdgeDetectEntity(vehicle)
def destroy(self): if self.__highlightStatus != self.HIGHLIGHT_OFF: BigWorld.wgDelEdgeDetectEntity(self.__vehicle) self.__highlightStatus = self.HIGHLIGHT_OFF self.__vehicle = None return
def delEdge(vehicle): BigWorld.wgDelEdgeDetectEntity(vehicle)
def _stopVisual(current, old_stopVisual = Vehicle.stopVisual): old_stopVisual(current) BigWorld.wgDelEdgeDetectEntity(current)
def _delEdgeDetect(self): BigWorld.wgDelEdgeDetectEntity(self)
def _targetFocus(current, entity, old_targetFocus = PlayerAvatar.targetFocus): BigWorld.wgDelEdgeDetectEntity(entity) old_targetFocus(current, entity)
def removeHighlight(self): if self.isOn and self.__vehicle is not None: self.__highlightStatus &= ~self.HIGHLIGHT_ON BigWorld.wgDelEdgeDetectEntity(self.__vehicle) return
def hide_edge(self): if hasattr(self.autoaim_vehicle, 'appearance'): BigWorld.wgDelEdgeDetectEntity(self.autoaim_vehicle) BigWorld.wgSetEdgeDetectColors( (Math.Vector4(self._autoaim_def), Math.Vector4(self._enemy_def), Math.Vector4(self._friend_def), Math.Vector4(self._flag_def)))
def removeEdge(self, forceSimpleEdge=False): if self.model: BigWorld.wgDelEdgeDetectEntity(self)
def __doHighlightOperation(self, status, args): if status & self.HIGHLIGHT_ON: BigWorld.wgAddEdgeDetectEntity(self.__vehicle, args[0], args[1], args[2]) else: BigWorld.wgDelEdgeDetectEntity(self.__vehicle)
def onIsHighlightedRemoved(self, _, highlightComponent): BigWorld.wgDelEdgeDetectEntity(highlightComponent.owner) if highlightComponent.onFadeCallback is not None: highlightComponent.onFadeCallback() return
def __doHighlightOperation(self, status, args): if status != self.HIGHLIGHT_OFF: BigWorld.wgAddEdgeDetectEntity(self.__vehicle, args[0], args[1], args[2]) else: BigWorld.wgDelEdgeDetectEntity(self.__vehicle)
def __fade3DEntityAndHideTT(self, entity): BigWorld.wgDelEdgeDetectEntity(entity) self.as_hide3DSceneTooltipS()
def hide_edge(self): if hasattr(self.autoaim_vehicle, 'appearance'): BigWorld.wgDelEdgeDetectEntity(self.autoaim_vehicle) BigWorld.wgSetEdgeDetectColors((Math.Vector4(self._autoaim_def), Math.Vector4(self._enemy_def), Math.Vector4(self._friend_def), Math.Vector4(self._flag_def)))