Ejemplo n.º 1
0
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))