Exemplo n.º 1
0
 def __cameraUpdate(self, allowModeChange = True):
     curTime = BigWorld.time()
     deltaTime = curTime - self.__prevTime
     self.__prevTime = curTime
     if not self.__autoUpdateDxDyDz.x == self.__autoUpdateDxDyDz.y == self.__autoUpdateDxDyDz.z == 0.0:
         self.__rotateAndZoom(self.__autoUpdateDxDyDz.x, self.__autoUpdateDxDyDz.y, self.__autoUpdateDxDyDz.z)
     self.__aimingSystem.update(deltaTime)
     localTransform, impulseTransform = self.__updateOscillators(deltaTime)
     aimMatrix = cameras.getAimMatrix(*self.__defaultAimOffset)
     camMat = Matrix(aimMatrix)
     rodMat = mathUtils.createTranslationMatrix(-self.__dynamicCfg['pivotShift'])
     antiRodMat = mathUtils.createTranslationMatrix(self.__dynamicCfg['pivotShift'])
     camMat.postMultiply(rodMat)
     camMat.postMultiply(localTransform)
     camMat.postMultiply(antiRodMat)
     camMat.postMultiply(self.__aimingSystem.matrix)
     camMat.invert()
     self.__cam.set(camMat)
     replayCtrl = BattleReplay.g_replayCtrl
     if replayCtrl.isPlaying and replayCtrl.isControllingCamera:
         aimOffset = replayCtrl.getAimClipPosition()
         binocularsOffset = aimOffset
     else:
         aimOffset = self.__calcAimOffset(impulseTransform)
         binocularsOffset = self.__calcAimOffset()
         if replayCtrl.isRecording:
             replayCtrl.setAimClipPosition(aimOffset)
     self.__aim.offset(aimOffset)
     self.__binoculars.setMaskCenter(binocularsOffset.x, binocularsOffset.y)
     player = BigWorld.player()
     if allowModeChange and (self.__isPositionUnderwater(self.__aimingSystem.matrix.translation) or player.isGunLocked):
         self.__onChangeControlMode(False)
         return -1
     return 0.0
Exemplo n.º 2
0
 def __cameraUpdate(self):
     curTime = BigWorld.time()
     deltaTime = curTime - self.__prevTime
     self.__prevTime = curTime
     if not self.__autoUpdateDxDyDz.x == self.__autoUpdateDxDyDz.y == self.__autoUpdateDxDyDz.z == 0.0:
         self.__rotateAndZoom(self.__autoUpdateDxDyDz.x, self.__autoUpdateDxDyDz.y, self.__autoUpdateDxDyDz.z)
     self.__aimingSystem.update(deltaTime)
     localTransform, impulseTransform = self.__updateOscillators(deltaTime)
     ownVehicle = BigWorld.entity(BigWorld.player().playerVehicleID)
     if ownVehicle is not None and ownVehicle.isStarted and ownVehicle.appearance.isUnderwater:
         self.__onChangeControlMode()
         return 0.0
     else:
         aimMatrix = cameras.getAimMatrix(*self.__defaultAimOffset)
         camMat = Matrix(aimMatrix)
         rodMat = mathUtils.createTranslationMatrix(-self.__dynamicCfg['pivotShift'])
         antiRodMat = mathUtils.createTranslationMatrix(self.__dynamicCfg['pivotShift'])
         camMat.postMultiply(rodMat)
         camMat.postMultiply(localTransform)
         camMat.postMultiply(antiRodMat)
         camMat.postMultiply(self.__aimingSystem.matrix)
         camMat.invert()
         self.__cam.set(camMat)
         replayCtrl = BattleReplay.g_replayCtrl
         if replayCtrl.isPlaying and replayCtrl.isControllingCamera:
             aimOffset = replayCtrl.getAimClipPosition()
             binocularsOffset = aimOffset
         else:
             aimOffset = self.__calcAimOffset(impulseTransform)
             binocularsOffset = self.__calcAimOffset()
             if replayCtrl.isRecording:
                 replayCtrl.setAimClipPosition(aimOffset)
         self.__aim.offset((aimOffset.x, aimOffset.y))
         self.__binoculars.setMaskCenter(binocularsOffset.x, binocularsOffset.y)
         return 0.0
Exemplo n.º 3
0
 def __cameraUpdate(self, allowModeChange=True):
     curTime = BigWorld.time()
     deltaTime = curTime - self.__prevTime
     self.__prevTime = curTime
     if not self.__autoUpdateDxDyDz.x == self.__autoUpdateDxDyDz.y == self.__autoUpdateDxDyDz.z == 0.0:
         self.__rotateAndZoom(self.__autoUpdateDxDyDz.x,
                              self.__autoUpdateDxDyDz.y,
                              self.__autoUpdateDxDyDz.z)
     self.__aimingSystem.update(deltaTime)
     localTransform, impulseTransform = self.__updateOscillators(deltaTime)
     zoom = self.__aimingSystem.overrideZoom(self.__zoom)
     aimMatrix = cameras.getAimMatrix(self.__defaultAimOffset.x,
                                      self.__defaultAimOffset.y)
     camMat = Matrix(aimMatrix)
     rodMat = mathUtils.createTranslationMatrix(
         -self.__dynamicCfg['pivotShift'])
     antiRodMat = mathUtils.createTranslationMatrix(
         self.__dynamicCfg['pivotShift'])
     camMat.postMultiply(rodMat)
     camMat.postMultiply(localTransform)
     camMat.postMultiply(antiRodMat)
     camMat.postMultiply(self.__aimingSystem.matrix)
     camMat.invert()
     self.__cam.set(camMat)
     if zoom != self.__zoom:
         self.__zoom = zoom
         self.__applyZoom(self.__zoom)
     replayCtrl = BattleReplay.g_replayCtrl
     if replayCtrl.isPlaying and replayCtrl.isControllingCamera:
         aimOffset = replayCtrl.getAimClipPosition()
         binocularsOffset = aimOffset
         if not BigWorld.player().isForcedGuiControlMode() and GUI.mcursor(
         ).inFocus:
             GUI.mcursor().position = aimOffset
     else:
         aimOffset = self.__calcAimOffset(impulseTransform)
         binocularsOffset = self.__calcAimOffset()
         if replayCtrl.isRecording:
             replayCtrl.setAimClipPosition(aimOffset)
     self.__aimOffset = aimOffset
     self.__binoculars.setMaskCenter(binocularsOffset.x, binocularsOffset.y)
     player = BigWorld.player()
     if allowModeChange and (self.__isPositionUnderwater(
             self.__aimingSystem.matrix.translation) or player.isGunLocked
                             and not player.isObserverFPV):
         self.__onChangeControlMode(False)
         return -1
Exemplo n.º 4
0
 def __calcAimMatrix(self):
     endMult = self.__inputInertia.endZoomMultiplier
     fov = FovExtended.instance().actualDefaultVerticalFov * endMult
     offset = self.__defaultAimOffset
     return cameras.getAimMatrix(-offset[0], -offset[1], fov)
Exemplo n.º 5
0
 def __getLookToAimMatrix(self):
     aimMatrix = cameras.getAimMatrix(-self.__aimOffset[0],
                                      -self.__aimOffset[1])
     return aimMatrix
Exemplo n.º 6
0
 def __calcAimMatrix(self):
     endMult = self.__inputInertia.endZoomMultiplier
     fov = FovExtended.instance().actualDefaultVerticalFov * endMult
     offset = self.__defaultAimOffset
     return cameras.getAimMatrix(-offset[0], -offset[1], fov)
Exemplo n.º 7
0
 def __cameraUpdate(self, allowModeChange=True):
     curTime = BigWorld.time()
     deltaTime = curTime - self.__prevTime
     self.__prevTime = curTime
     if not self.__autoUpdateDxDyDz.x == self.__autoUpdateDxDyDz.y == self.__autoUpdateDxDyDz.z == 0.0:
         self.__rotateAndZoom(self.__autoUpdateDxDyDz.x,
                              self.__autoUpdateDxDyDz.y,
                              self.__autoUpdateDxDyDz.z)
     self.__aimingSystem.update(deltaTime)
     localTransform, impulseTransform = self.__updateOscillators(deltaTime)
     player = BigWorld.player()
     vehicle = player.getVehicleAttached()
     zoom = self.__zoom
     if self.__isRemoteCamera and vehicle is not None:
         camMat = self.__getRemoteAim(allowModeChange)
         if camMat is None:
             return 0.0
         zoom = float(player.remoteCameraSniper.zoom)
     else:
         aimMatrix = cameras.getAimMatrix(self.__defaultAimOffset.x,
                                          self.__defaultAimOffset.y)
         camMat = Matrix(aimMatrix)
         rodMat = mathUtils.createTranslationMatrix(
             -self.__dynamicCfg['pivotShift'])
         antiRodMat = mathUtils.createTranslationMatrix(
             self.__dynamicCfg['pivotShift'])
         camMat.postMultiply(rodMat)
         camMat.postMultiply(localTransform)
         camMat.postMultiply(antiRodMat)
         camMat.postMultiply(self.__aimingSystem.matrix)
         camMat.invert()
     if not player.isObserver() and vehicle is not None:
         relTranslation = self.__cam.position - vehicle.position
         rot = Math.Vector3(camMat.yaw, camMat.pitch, camMat.roll)
         vehicle.setSniperCameraDataForObservers(relTranslation, rot, zoom)
     self.__cam.set(camMat)
     if zoom != self.__zoom:
         self.__zoom = zoom
         self.__applyZoom(self.__zoom)
     replayCtrl = BattleReplay.g_replayCtrl
     if replayCtrl.isPlaying and replayCtrl.isControllingCamera:
         aimOffset = replayCtrl.getAimClipPosition()
         binocularsOffset = aimOffset
         if not BigWorld.player().isForcedGuiControlMode() and GUI.mcursor(
         ).inFocus:
             GUI.mcursor().position = aimOffset
     else:
         aimOffset = self.__calcAimOffset(impulseTransform)
         binocularsOffset = self.__calcAimOffset()
         if replayCtrl.isRecording:
             replayCtrl.setAimClipPosition(aimOffset)
     self.__aimOffset = aimOffset
     self.__binoculars.setMaskCenter(binocularsOffset.x, binocularsOffset.y)
     if not self.__isRemoteCamera and allowModeChange and (
             self.__isPositionUnderwater(
                 self.__aimingSystem.matrix.translation)
             or player.isGunLocked):
         self.__onChangeControlMode(False)
         return -1
     else:
         return 0.0
Exemplo n.º 8
0
 def __getLookToAimMatrix(self):
     aimMatrix = cameras.getAimMatrix(-self.__aimOffset[0], -self.__aimOffset[1])
     return aimMatrix