def onEnterWorld(self, prereqs): self.model = prereqs[self.__vehDescr.name] self.model.matrix = self.matrix self.collisions = prereqs['collisionAssembler'] self.__detachConfirmationTimer.onEnterWorld() self.__vehDescr.keepPrereqs(prereqs) turretDescr = self.__vehDescr.turret if self.isUnderWater == 0: self.__detachmentEffects = _TurretDetachmentEffects( self.model, turretDescr.turretDetachmentEffects, self.isCollidingWithWorld == 1) self.addComponent(self.__detachmentEffects) else: self.__detachmentEffects = None self.__hitEffects = _HitEffects(self.model) self.addComponent(self.__hitEffects) self.__componentsDesc = (self.__vehDescr.turret, self.__vehDescr.gun) from helpers.CallbackDelayer import CallbackDelayer self.__isBeingPulledCallback = CallbackDelayer() self.__isBeingPulledCallback.delayCallback(self.__checkIsBeingPulled(), self.__checkIsBeingPulled) DetachedTurret.allTurrets.append(self) collisionData = ((TankPartNames.getIdx(TankPartNames.TURRET), self.model.matrix), (TankPartNames.getIdx(TankPartNames.GUN), self.model.node(TankPartNames.GUN))) self.collisions.connect(self.id, ColliderTypes.DYNAMIC_COLLIDER, collisionData) ComponentSystem.activate(self) return
def __init__(self, spaceId, vEntity): ComponentSystem.__init__(self) self.__loadState = _LoadStateNotifier() self.__curBuildInd = 0 self.__vDesc = None self.__vState = None self.__fashions = VehiclePartsTuple(None, None, None, None) self.__repaintHandlers = [None, None, None, None] self.__camoHandlers = [None, None, None, None] self.__spaceId = spaceId self.__vEntity = weakref.proxy(vEntity) self.__onLoadedCallback = None self.__onLoadedAfterRefreshCallback = None self.__vehicleStickers = None self.__isVehicleDestroyed = False self.__outfit = None self.shadowManager = None cfg = hangarCFG() self.__currentEmblemsAlpha = cfg['emblems_alpha_undamaged'] self.__showMarksOnGun = self.settingsCore.getSetting('showMarksOnGun') self.settingsCore.onSettingsChanged += self.__onSettingsChanged self.itemsCache.onSyncCompleted += self.__onItemsCacheSyncCompleted g_eventBus.addListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED, self.__handleEntityUpdated) return
def __init__(self): CallbackDelayer.__init__(self) ComponentSystem.__init__(self) self.turretMatrix = Math.WGAdaptiveMatrixProvider() self.gunMatrix = Math.WGAdaptiveMatrixProvider() self.__vehicle = None self.__filter = None self.__originalFilter = None self.__typeDesc = None self.__waterHeight = -1.0 self.__isInWater = False self.__isUnderWater = False self.__splashedWater = False self.__vibrationsCtrl = None self.__lightFxCtrl = None self.__auxiliaryFxCtrl = None self.__fashion = None self.__crashedTracksCtrl = None self.__gunRecoil = None self.__currentDamageState = VehicleDamageState() self.__loadingProgress = 0 self.__effectsPlayer = None self.__engineMode = (0, 0) self.__swingMoveFlags = 0 self.__currTerrainMatKind = [-1] * _MATKIND_COUNT self.__leftLightRotMat = None self.__rightLightRotMat = None self.__leftFrontLight = None self.__rightFrontLight = None self.__prevVelocity = None self.__prevTime = None self.__isPillbox = False self.__chassisOcclusionDecal = OcclusionDecal() self.__chassisShadowForwardDecal = ShadowForwardDecal() self.__splodge = None self.__vehicleStickers = None self.onModelChanged = Event() self.__speedInfo = Math.Vector4(0.0, 0.0, 0.0, 0.0) self.__wasOnSoftTerrain = False self.__vehicleMatrixProv = None self.__leftTrackScroll = 0.0 self.__rightTrackScroll = 0.0 self.__distanceFromPlayer = 0.0 self.__fashions = None self.__compoundModel = None self.__boundEffects = None self.__swingingAnimator = None self.__splineTracks = None self.__customEffectManager = None self.__trackScrollCtl = BigWorld.PyTrackScroll() self.__weaponEnergy = 0.0 self.__activated = False self.__systemStarted = False self.__vID = 0 self.__isAlive = True self.__isTurretDetached = False self.__trackFashionSet = False self.__periodicTimerID = None self.__wasDeactivated = False return
def __init__(self): CallbackDelayer.__init__(self) ComponentSystem.__init__(self) self.__alwaysShowAimKey = None self.__showMarkersKey = None sec = self._readCfg() self.onCameraChanged = Event() self.onPostmortemVehicleChanged = Event() self.onPostmortemKillerVisionEnter = Event() self.onPostmortemKillerVisionExit = Event() self.__isArenaStarted = False self.__isStarted = False self.__targeting = _Targeting() self.__vertScreenshotCamera = _VertScreenshotCamera() self.__ctrls = dict() self.__killerVehicleID = None self.__isAutorotation = True self.__prevModeAutorotation = None self.__isSPG = False self.__isATSPG = False self.__setupCtrls(sec) self.__curCtrl = self.__ctrls[_CTRLS_FIRST] self.__ctrlModeName = _CTRLS_FIRST self.__isDetached = False self.__waitObserverCallback = None self.__observerVehicle = None self.__observerIsSwitching = False self.__commands = [] self.__remoteCameraSender = None self.__isGUIVisible = False return
def stop(self): self.__isStarted = False import SoundGroups SoundGroups.g_instance.changePlayMode(0) aih_global_binding.clear() for control in self.__ctrls.itervalues(): control.destroy() replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isRecording: replayCtrl.setPlayerVehicleID(0) if self.__remoteCameraSender is not None: self.__remoteCameraSender.destroy() self.__remoteCameraSender = None self.onCameraChanged.clear() self.onCameraChanged = None self.onPostmortemVehicleChanged.clear() self.onPostmortemVehicleChanged = None self.onPostmortemKillerVisionEnter.clear() self.onPostmortemKillerVisionEnter = None self.onPostmortemKillerVisionExit.clear() self.onPostmortemKillerVisionExit = None self.__targeting.enable(False) self.__killerVehicleID = None if self.__onRecreateDevice in g_guiResetters: g_guiResetters.remove(self.__onRecreateDevice) BigWorld.player().arena.onPeriodChange -= self.__onArenaStarted self.settingsCore.onSettingsChanged -= self.__onSettingsChanged BigWorld.player().consistentMatrices.onVehicleMatrixBindingChanged -= self.__onVehicleChanged ComponentSystem.destroy(self) CallbackDelayer.destroy(self) return
def destroy(self): self.__trackScrollCtl = None if self.__vehicle is not None: self.deactivate() self.__destroySystems() ComponentSystem.destroy(self) self.__typeDesc = None self.highlighter.destroy() if self.__vibrationsCtrl is not None: self.__vibrationsCtrl.destroy() self.__vibrationsCtrl = None if self.__lightFxCtrl is not None: self.__lightFxCtrl.destroy() self.__lightFxCtrl = None if self.__auxiliaryFxCtrl is not None: self.__auxiliaryFxCtrl.destroy() self.__auxiliaryFxCtrl = None if self.__boundEffects is not None: self.__boundEffects.destroy() self.__vehicleStickers = None self.onModelChanged = None if self.__crashedTracksCtrl is not None: self.__crashedTracksCtrl.destroy() self.__crashedTracksCtrl = None self.__chassisOcclusionDecal.destroy() self.__chassisOcclusionDecal = None self.__chassisShadowForwardDecal.destroy() self.__chassisShadowForwardDecal = None self.__compoundModel = None CallbackDelayer.destroy(self) return
def __init__(self): BigWorld.Entity.__init__(self) ComponentSystem.__init__(self) self.__enabled = True self.__edged = False self.__clickSound = None self.model = None return
def __init__(self, bonusType): ComponentSystem.__init__(self) self.bonusType = bonusType self._onUpdate = {ARENA_UPDATE.SYNC_OBJECTS: self.__onFullSyncObjectReceived, ARENA_UPDATE.SYNC_OBJECTS_DIFF: self.__onSyncObjectUpdateReceived} self.__syncDataObjects = {} for k, v in ARENA_SYNC_OBJECT_NAMES.iteritems(): self.__syncDataObjects[k] = ArenaSyncObject()
def onLeaveWorld(self): ComponentSystem.destroy(self) DetachedTurret.allTurrets.remove(self) ProjectileAwareEntities.removeEntity(self) self.__detachConfirmationTimer.cancel() self.__detachConfirmationTimer = None self.__isBeingPulledCallback.destroy() self.__isBeingPulledCallback = None return
def recreate(self, vDesc, vState, callback): ComponentSystem.deactivate(self) self.shadowManager = VehicleShadowManager() self.shadowManager.updatePlayerTarget(None) self.__onLoadedCallback = callback self.__outfit = self.__getActiveOutfit() self.__loadState.unload() self.__startBuild(vDesc, vState) return
def onLeaveWorld(self): ComponentSystem.deactivate(self) ComponentSystem.destroy(self) if self.__clickSound is not None: if self.__clickSound.isPlaying: self.__clickSound.stop() self.__clickSound.releaseMatrix() self.__clickSound = None self.highlight(False) return
def __init__(self, bonusType): ComponentSystem.__init__(self) self.bonusType = bonusType self._onUpdate = { ARENA_UPDATE.SYNC_OBJECTS: self.__onFullSyncObjectReceived, ARENA_UPDATE.SYNC_OBJECTS_DIFF: self.__onSyncObjectUpdateReceived } self.__syncDataObjects = {} for k, v in ARENA_SYNC_OBJECT_NAMES.iteritems(): self.__syncDataObjects[k] = ArenaSyncObject()
def __reload(self, vDesc, vState, outfit): self.__loadState.unload() ComponentSystem.deactivate(self) self.tracks = None self.collisionObstaclesCollector = None self.tessellationCollisionSensor = None self.shadowManager = VehicleShadowManager() self.shadowManager.updatePlayerTarget(None) self.__outfit = outfit self.__startBuild(vDesc, vState) return
def __init__(self): ComponentSystem.__init__(self) self.__vehDescr = vehicles.VehicleDescr(compactDescr=self.vehicleCompDescr) self.filter = BigWorld.WGTurretFilter() self.__detachConfirmationTimer = SynchronousDetachment(self) self.__detachConfirmationTimer.onInit() self.__detachmentEffects = None self.targetFullBounds = True self.targetCaps = [1] self.__isBeingPulledCallback = None self.__hitEffects = None return
def onLeaveWorld(self): ComponentSystem.deactivate(self) ComponentSystem.destroy(self) DetachedTurret.allTurrets.remove(self) self.__detachConfirmationTimer.cancel() self.__detachConfirmationTimer = None self.__isBeingPulledCallback.destroy() self.__isBeingPulledCallback = None if self.__vehicleStickers is not None: self.__vehicleStickers.detach() self.__vehicleStickers = None return
def onEnterWorld(self, prereqs): if self.modelName == '': return if self.modelName not in prereqs.failedIDs: model = prereqs[self.modelName] self.model = model self.filter = BigWorld.DumbFilter() self.model.addMotor(BigWorld.Servo(self.matrix)) self.collisions = prereqs['collisionAssembler'] collisionData = ((0, self.model.matrix), ) self.collisions.connect(self.id, ColliderTypes.DYNAMIC_COLLIDER, collisionData) ComponentSystem.activate(self)
def destroy(self): ComponentSystem.deactivate(self) ComponentSystem.destroy(self) self.__vDesc = None self.__vState = None self.__loadState.unload() self.__loadState.destroy() self.__loadState = None self.__curBuildInd = 0 self.__vEntity = None self.settingsCore.onSettingsChanged -= self.__onSettingsChanged self.itemsCache.onSyncCompleted -= self.__onItemsCacheSyncCompleted g_eventBus.removeListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED, self.__handleEntityUpdated) return
def destroy(self): if self.__vehicle is not None: self.deactivate() self.__destroySystems() ComponentSystem.destroy(self) self.__typeDesc = None if self.__boundEffects is not None: self.__boundEffects.destroy() self.__vehicleStickers = None self.onModelChanged = None self.__chassisDecal.destroy() self.__chassisDecal = None self.__compoundModel = None CallbackDelayer.destroy(self) return
def __init__(self): CallbackDelayer.__init__(self) ComponentSystem.__init__(self) self.turretMatrix = Math.WGAdaptiveMatrixProvider() self.gunMatrix = Math.WGAdaptiveMatrixProvider() self.__vehicle = None self.__filter = None self.__originalFilter = None self.__typeDesc = None self.__fashion = None self.crashedTracksController = None self.__currentDamageState = VehicleDamageState() self.__effectsPlayer = None self.__engineMode = (0, 0) self.__currTerrainMatKind = [-1] * _MATKIND_COUNT self.__terrainEffectMaterialNames = [''] * _MATKIND_COUNT self.__terrainMatKindLodDistance = _LOD_DISTANCE_TERRAIN_MATKIND_UPDATE self.__chassisDecal = VehicleDecal(self) self.__splodge = None self.__vehicleStickers = None self.onModelChanged = Event() self.__leftTrackScroll = 0.0 self.__rightTrackScroll = 0.0 self.__fashions = None self.__compoundModel = None self.__boundEffects = None self.__splineTracks = None self.flyingInfoProvider = Vehicular.FlyingInfoProvider() self.__trackScrollCtl = BigWorld.PyTrackScroll() self.__trackScrollCtl.setFlyingInfo( DataLinks.createBoolLink(self.flyingInfoProvider, 'isLeftSideFlying'), DataLinks.createBoolLink(self.flyingInfoProvider, 'isRightSideFlying')) self.__weaponEnergy = 0.0 self.__activated = False self.__systemStarted = False self.__outfit = None self.__vID = 0 self.__isAlive = True self.__isTurretDetached = False self.__periodicTimerID = None self.__wasDeactivated = False self.__dirtUpdateTime = 0.0 self.__inSpeedTreeCollision = False self.__isObserver = False self.__chassisColisionMatrix = Math.WGAdaptiveMatrixProvider() return
def destroy(self): if self.__vehicle is not None: self.deactivate() self.__destroySystems() fashions = VehiclePartsTuple(None, None, None, None) self.__setFashions(fashions, self.__isTurretDetached) ComponentSystem.destroy(self) self.__typeDesc = None if self.__boundEffects is not None: self.__boundEffects.destroy() self.__vehicleStickers = None self.onModelChanged = None self.__chassisDecal.destroy() self.__chassisDecal = None self.__compoundModel = None CallbackDelayer.destroy(self) return
def destroy(self): ComponentSystem.deactivate(self) ComponentSystem.destroy(self) self.__onLoadedCallback = None self.__vDesc = None self.__vState = None self.__isLoaded = False self.__curBuildInd = 0 self.__vEntityId = None if self.__smCb is not None: BigWorld.cancelCallback(self.__smCb) self.__smCb = None if self.__smRemoveCb is not None: BigWorld.cancelCallback(self.__smRemoveCb) self.__smRemoveCb = None self.settingsCore.onSettingsChanged -= self.__onSettingsChanged self.itemsCache.onSyncCompleted -= self.__onItemsCacheSyncCompleted return
def __init__(self, spaceId, vEntityId, hangarSpace): ComponentSystem.__init__(self) self.__isLoaded = False self.__curBuildInd = 0 self.__vDesc = None self.__vState = None self.__fashions = VehiclePartsTuple(None, None, None, None) self.__spaceId = spaceId self.__vEntityId = vEntityId self.__onLoadedCallback = None self.__emblemsAlpha = _CFG['emblems_alpha_undamaged'] self.__vehicleStickers = None self.__isVehicleDestroyed = False self.__smCb = None self.__smRemoveCb = None self.__hangarSpace = weakref.proxy(hangarSpace) self.__removeHangarShadowMap() self.__showMarksOnGun = self.settingsCore.getSetting('showMarksOnGun') self.settingsCore.onSettingsChanged += self.__onSettingsChanged self.itemsCache.onSyncCompleted += self.__onItemsCacheSyncCompleted return
def recreate(self, vDesc, vState, onVehicleLoadedCallback=None): ComponentSystem.deactivate(self) self.__onLoadedCallback = onVehicleLoadedCallback self.__isLoaded = False self.__startBuild(vDesc, vState)
def destroy(self): ComponentSystem.destroy(self) self._onUpdate.clear() self.__syncDataObjects.clear()