Beispiel #1
0
 def __setupCameraProviders(self, vehicleMProv):
     vehiclePos = Math.Vector4Translation(vehicleMProv)
     cameraPositionProvider = Math.Vector4Combiner()
     cameraPositionProvider.fn = 'ADD'
     cameraPositionProvider.a = Vector4(0, 0, 0, 0)
     cameraPositionProvider.b = vehiclePos
     cameraAimPointProvider = Math.Vector4Combiner()
     cameraAimPointProvider.fn = 'ADD'
     cameraAimPointProvider.a = Vector4(0, 0, 1, 0)
     cameraAimPointProvider.b = vehiclePos
     self.__cam.cameraPositionProvider = cameraPositionProvider
     self.__cam.aimPointProvider = cameraAimPointProvider
     self.__cam.pivotPositionProvider = self.__aimingSystem.positionAboveVehicleProv
Beispiel #2
0
    def go(self, effect, actor, source, target, **kargs):
        try:
            duration = kargs['actorDurations'][self.actorName]
        except:
            duration = kargs['totalDuration']

        self.light = BigWorld.PyChunkLight()
        self.light.innerRadius = self.innerRadius
        self.light.outerRadius = self.outerRadius
        self.lightFaderAnim = Vector4Animation()
        self.lightFaderAnim.time = 0
        self.lightFaderAnim.duration = duration
        col = Vector4(self.colour)
        self.lightFaderAnim.keyframes = [(0.0, (0, 0, 0, 0)), (0.25, col),
                                         (duration * 0.5, col),
                                         (duration, (0, 0, 0, 0))]
        lfo1 = Vector4LFO()
        lfo1.period = 0.4
        lfo2 = Vector4LFO()
        lfo2.period = 0.149
        self.lightFader = Vector4Shader()
        self.lightFader.addOp(_mul, _r1, lfo1, lfo2)
        self.lightFader.addOp(_mul, _r0, self.lightFaderAnim, _r1)
        try:
            self.light.source = source.model.root
        except:
            try:
                self.light.source = source.root
            except:
                self.light.source = source.node('Scene Root')

        self.light.visible = 1
        self.light.shader = self.lightFader
        BigWorld.callback(duration, self.removeLight)
        return duration
Beispiel #3
0
    def __periodicUpdate(self):
        self.__periodicTimerID = None
        blackLights = LightManager.LOCATIONS_MASKS.keys()
        blackLights.remove(LightManager.ALL_LIGHTS)
        if self.__runningEffects:
            lightEffect = self.__runningEffects[-1]
            for oneLightAction in lightEffect.lightActions.values():
                if oneLightAction.lightDescription in blackLights:
                    blackLights.remove(oneLightAction.lightDescription)
                if oneLightAction.lightDescription == LightManager.ALL_LIGHTS:
                    del blackLights[:]
                if oneLightAction.action == LightEffect.ACTION_COLOR:
                    self.setLightAction(oneLightAction.lightDescription,
                                        oneLightAction.color,
                                        oneLightAction.action)
                del blackLights[:]
                break

        for lightDescription in blackLights:
            self.setLightAction(lightDescription, Vector4(),
                                LightEffect.ACTION_COLOR)

        self.__lightObject.update()
        self.__lastUpdateTime = time.time()
        self.__periodicTimerID = BigWorld.callback(LightManager.UPDATE_TIMEOUT,
                                                   self.__periodicUpdate)
        return
Beispiel #4
0
 def init(self, center, size):
     self._bounds = Vector4(-size.x / 2, -size.z / 2, size.x / 2,
                            size.z / 2)
     self._min = Vector3(center.x + self._bounds[0], center.y,
                         center.z + self._bounds[3])
     self._max = Vector3(center.x + self._bounds[2], center.y,
                         center.z + self._bounds[1])
Beispiel #5
0
 def initSettings(self, settings):
     self.flagModelName = settings.readString('flagModelName', '')
     self.flagStaffModelName = settings.readString('flagstaffModelName', '')
     self.radiusModel = settings.readString('radiusModel', '')
     self.flagAnim = settings.readString('flagAnim', '')
     self.flagStaffFlagHP = settings.readString('flagstaffFlagHP', '')
     self.baseAttachedSoundEventName = settings.readString('wwsound', '')
     self.flagBackgroundTex = settings.readString('flagBackgroundTex', '')
     self.flagEmblemTex = settings.readString('flagEmblemTex', '')
     self.flagEmblemTexCoords = settings.readVector4('flagEmblemTexCoords', Vector4())
     self.flagScale = settings.readVector3('flagScale', Vector3())
     self.flagNodeAliasName = settings.readString('flagNodeAliasName', '')
Beispiel #6
0
    def go(self, effect, actor, source, target, **kargs):
        if kargs.has_key('victims'):
            self.processVictims(actor, kargs['victims'])
        self.model = actor
        go = actor.action(self.actionName)
        go()
        BigWorld.callback(go.duration, self.finishUp)
        self.effect = effect
        actor.Material = 'Fader'
        self.fader.keyframes = [(0, self.colour),
                                (go.duration, Vector4(0, 0, 0, 0)),
                                (go.duration + 1.0, Vector4(0, 0, 0, 0))]
        self.fader.duration = go.duration + 1.0
        self.fader.time = 0.0
        actor.Material.colour = self.fader
        try:
            BigWorld.setShimmerStyle(self.shimmerStyle)
        except:
            pass

        self.matID = BigWorld.addMat(actor.node('plasmaexplosion'),
                                     self.shockHitCamera)
        return go.duration
Beispiel #7
0
 def go(self, effect, actor, source, target, **kargs):
     self.colour = actor.colour
     lfo1 = Vector4LFO()
     lfo1.period = 0.4 / self.speed
     lfo1.amplitude = self.amplitude
     lfo2 = Vector4LFO()
     lfo2.period = 0.149 / self.speed
     scalarOffset = 1.0 - self.amplitude
     offset = Vector4(scalarOffset, scalarOffset, scalarOffset,
                      scalarOffset)
     self.lightFlicker = Vector4Shader()
     self.lightFlicker.addOp(_mul, _r1, lfo1, lfo2)
     self.lightFlicker.addOp(_add, _r1, _r1, offset)
     self.lightFlicker.addOp(_mul, _r0, self.colour, _r1)
     actor.shader = self.lightFlicker
     return 0.0
Beispiel #8
0
 def __setCameraAimPoint(self, relativeToVehiclePosition):
     self.__cam.aimPointProvider.a = Vector4(relativeToVehiclePosition.x,
                                             relativeToVehiclePosition.y,
                                             relativeToVehiclePosition.z,
                                             1.0)
Beispiel #9
0
 def __setCameraPosition(self, relativeToVehiclePosition):
     self.__cam.cameraPositionProvider.a = Vector4(
         relativeToVehiclePosition.x, relativeToVehiclePosition.y,
         relativeToVehiclePosition.z, 1.0)
Beispiel #10
0
 def actionColorEx(self, mask, action, color):
     self.__lightObject.actionColorEx(mask, action, color, Vector4())
Beispiel #11
0
 def __init__(self):
     self.innerRadius = 3
     self.outerRadius = 6
     self.actorName = None
     self.colour = Vector4(255, 240, 100, 255)
     return
Beispiel #12
0
 def __init__(self):
     self._bounds = Vector4(0, 0, 0, 0)
     self._min = Vector3(0, 0, 0)
     self._max = Vector3(0, 0, 0)