def createMotionTrails(self, parent, vertex_list = small_vertex_list, motion_color = default_motion_color): self.mtrail = PolyTrail(None, vertex_list, motion_color, 0.29999999999999999) self.mtrail.setUnmodifiedVertexColors(motion_color) self.mtrail.reparentTo(parent) self.mtrail.motion_trail.geom_node_path.setTwoSided(False) self.mtrail.setBlendModeOn() self.mtrail.setTimeWindow(0.29999999999999999) self.mtrail.beginTrail()
def getTrailEffectsIval(self): if not self.trailEffectsIval: if self.trailTypeId is None: self.effectNode.setPos(self.velocity) self.trailEffectsIval = Wait(self.burstDelay) return self.trailEffectsIval self.trailEffectsIval = Parallel() self.trailEffectsIval.append( ProjectileInterval(self.effectsNode, startVel=self.velocity, duration=self.burstDelay, gravityMult=self.gravityMult)) if self.trailTypeId is None: return self.trailEffectsIval theSoundInterval = SoundInterval(random.choice(self.trailSfx), node=self.effectsNode, cutOff=3000) self.trailEffectsIval.append( Func(self.setupSoundVolume, theSoundInterval)) self.trailEffectsIval.append(theSoundInterval) if base.options.getSpecialEffectsSetting( ) == base.options.SpecialEffectsLow: if self.trailTypeId != FireworkTrailType.LongGlowSparkle: self.trailTypeId = FireworkTrailType.Default if self.trailTypeId == FireworkTrailType.Default: glowEffect = Glow.getEffect() if glowEffect: glowEffect.reparentTo(self.effectsNode) glowEffect.setColorScale(Vec4(1, 1, 1, 1)) glowEffect.setScale(30.0) self.trailEffects.append(glowEffect) self.trailEffectsIval.append(Func(glowEffect.startLoop)) elif self.trailTypeId == FireworkTrailType.Polygonal: r = 2.5 mColor = Vec4(1, 1, 1, 1) vertex_list = [ Vec4(r, 0.0, r, 1.0), Vec4(r, 0.0, -r, 1.0), Vec4(-r, 0.0, -r, 1.0), Vec4(-r, 0.0, r, 1.0), Vec4(r, 0.0, r, 1.0) ] motion_color = [mColor, mColor, mColor, mColor, mColor] trailEffect = PolyTrail(None, vertex_list, motion_color, 0.5) trailEffect.setUnmodifiedVertexColors(motion_color) trailEffect.reparentTo(self.effectsNode) trailEffect.motion_trail.geom_node_path.setTwoSided(False) trailEffect.setBlendModeOn() trailEffect.setLightOff() self.trailEffects.append(trailEffect) self.trailEffectsIval.append(Func(trailEffect.beginTrail)) elif self.trailTypeId == FireworkTrailType.Glow: trailEffect = GlowTrail.getEffect() if trailEffect: trailEffect.reparentTo(self.effectsNode) trailEffect.setEffectScale(self.scale * 0.75) trailEffect.setEffectColor(Vec4(1, 1, 1, 1)) trailEffect.setLifespan(0.25) self.trailEffects.append(trailEffect) self.trailEffectsIval.append(Func(trailEffect.startLoop)) elif self.trailTypeId == FireworkTrailType.Sparkle: trailEffect = SparksTrail.getEffect() if trailEffect: trailEffect.reparentTo(self.effectsNode) trailEffect.setEffectScale(self.scale) trailEffect.setEffectColor(Vec4(1, 1, 1, 1)) self.trailEffects.append(trailEffect) self.trailEffectsIval.append(Func(trailEffect.startLoop)) elif self.trailTypeId == FireworkTrailType.GlowSparkle: glowEffect = Glow.getEffect() if glowEffect: glowEffect.reparentTo(self.effectsNode) glowEffect.setColorScale(Vec4(1, 1, 1, 1)) glowEffect.setScale(50.0) self.trailEffects.append(glowEffect) self.trailEffectsIval.append(Func(glowEffect.startLoop)) trailEffect = SparksTrail.getEffect() if trailEffect: trailEffect.reparentTo(self.effectsNode) trailEffect.setEffectScale(self.scale) trailEffect.setEffectColor(Vec4(1, 1, 1, 1)) self.trailEffects.append(trailEffect) self.trailEffectsIval.append(Func(trailEffect.startLoop)) elif self.trailTypeId == FireworkTrailType.LongSparkle: trailEffect = SparksTrailLong.getEffect() if trailEffect: trailEffect.reparentTo(self.effectsNode) trailEffect.setEffectScale(self.scale) trailEffect.setEffectColor(Vec4(1, 1, 1, 1)) trailEffect.setLifespan(4.0) self.trailEffects.append(trailEffect) self.trailEffectsIval.append(Func(trailEffect.startLoop)) elif self.trailTypeId == FireworkTrailType.LongGlowSparkle: trailEffect = SparksTrailLong.getEffect() if trailEffect: trailEffect.reparentTo(self.effectsNode) trailEffect.setEffectScale(self.scale) trailEffect.setEffectColor(self.secondaryColor) trailEffect.setLifespan(3.5) self.trailEffects.append(trailEffect) self.trailEffectsIval.append(Func(trailEffect.startLoop)) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: trailEffect = GlowTrail.getEffect() if trailEffect: trailEffect.reparentTo(self.effectsNode) trailEffect.setEffectScale(self.scale) trailEffect.setEffectColor(self.primaryColor) trailEffect.setLifespan(1.0) self.trailEffects.append(trailEffect) self.trailEffectsIval.append( Func(trailEffect.startLoop)) return self.trailEffectsIval