This one creates the explosion, but the texture stays at stage 1. However, the remaining components in the Sequence (2,3,4) do get called in 0.5 sec intervals, but the texture does not change. As if explotex2,3,4 still call for 1.
explotex1-4 are the same color texture combined with different alpha textures.
def createExplosion(self, source, dur=2.0):
explocm = CardMaker("explocm")
explocm.setFrame(-1,1,-1,1)
explogen = explocm.generate()
self.explo = render.attachNewNode(explogen)
explotex1 = loader.loadTexture("../mceffects/explosions/explo1_64_c.png", "../mceffects/explosions/explo1_64_a1.png")
explotex2 = loader.loadTexture("../mceffects/explosions/explo1_64_c.png", "../mceffects/explosions/explo1_64_a2.png")
explotex3 = loader.loadTexture("../mceffects/explosions/explo1_64_c.png", "../mceffects/explosions/explo1_64_a3.png")
explotex4 = loader.loadTexture("../mceffects/explosions/explo1_64_c.png", "../mceffects/explosions/explo1_64_a4.png")
# self.explo.setTexture(explotex4)
self.explo.setTransparency(TransparencyAttrib.MDual)
self.explo.setScale(0.01)
self.explo.setTwoSided(True)
self.explo.setBillboardPointEye()
self.explo.setLightOff()
self.explo.flattenStrong()
self.explo.setDepthTest(True)
self.explo.reparentTo(render)
self.explo.setPos(source.getPos())
exploscale = LerpScaleInterval(self.explo, dur, 2.0, 0.01)
exploscaleseq = Sequence(exploscale, Func(lambda: self.explo.removeNode())).start()
explotexseq = Sequence(Func(lambda: self.explo.setTexture(explotex1)),Wait(0.5),
Func(lambda: self.explo.setTexture(explotex2)),Wait(0.5),
Func(lambda: self.explo.setTexture(explotex3)),Wait(0.5),
Func(lambda: self.explo.setTexture(explotex4))).start()