def createStunInterval(suit, before, after, pos = None, hpr = None, scale = None): from direct.actor.Actor import Actor from panda3d.core import Point3 from direct.interval.IntervalGlobal import Sequence, Wait, Func if not suit or suit.isEmpty() or not suit.headModel or suit.headModel.isEmpty(): return Sequence(Wait(1.0)) stars = Actor("phase_3.5/models/props/stun-mod.bam", {"chan": "phase_3.5/models/props/stun-chan.bam"}) stars.setColor(1, 1, 1, 1) stars.adjustAllPriorities(100) if pos: stars.setPos(pos) if hpr: stars.setHpr(hpr) if scale: stars.setScale(scale) head = suit.headModel seq = Sequence(Wait(before), Func(stars.reparentTo, head)) if not pos: p1 = Point3(0) p2 = Point3(0) head.calcTightBounds(p1, p2) seq.append(Func(stars.setZ, max(0.0, p2[2] - 1.0))) seq.append(Func(stars.loop, 'chan')) seq.append(Wait(after)) seq.append(Func(stars.cleanup)) return seq
def createStunInterval(suit, before, after): from direct.actor.Actor import Actor from panda3d.core import Point3 from direct.interval.IntervalGlobal import Sequence, Wait, Func if not suit or suit.isEmpty( ) or not suit.headModel or suit.headModel.isEmpty(): return Sequence(Wait(1.0)) p1 = Point3(0) p2 = Point3(0) stars = Actor("phase_3.5/models/props/stun-mod.bam", {"chan": "phase_3.5/models/props/stun-chan.bam"}) stars.setColor(1, 1, 1, 1) stars.adjustAllPriorities(100) head = suit.headModel head.calcTightBounds(p1, p2) return Sequence(Wait(before), Func(stars.reparentTo, head), Func(stars.setZ, max(0.0, p2[2] - 1.0)), Func(stars.loop, 'chan'), Wait(after), Func(stars.cleanup))