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
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
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
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])
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', '')
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
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
def __setCameraAimPoint(self, relativeToVehiclePosition): self.__cam.aimPointProvider.a = Vector4(relativeToVehiclePosition.x, relativeToVehiclePosition.y, relativeToVehiclePosition.z, 1.0)
def __setCameraPosition(self, relativeToVehiclePosition): self.__cam.cameraPositionProvider.a = Vector4( relativeToVehiclePosition.x, relativeToVehiclePosition.y, relativeToVehiclePosition.z, 1.0)
def actionColorEx(self, mask, action, color): self.__lightObject.actionColorEx(mask, action, color, Vector4())
def __init__(self): self.innerRadius = 3 self.outerRadius = 6 self.actorName = None self.colour = Vector4(255, 240, 100, 255) return
def __init__(self): self._bounds = Vector4(0, 0, 0, 0) self._min = Vector3(0, 0, 0) self._max = Vector3(0, 0, 0)