def __init__(self,
              air,
              partyDoId,
              x,
              y,
              h,
              eventId=PartyGlobals.FireworkShows.Summer,
              showStyle=0):
     """
     air: instance of ToontownAIRepository
     eventId: a PartyGlobals.FireworkShows value that tells us which show
              to run
     """
     DistributedPartyFireworksActivityAI.notify.debug("__init__")
     DistributedPartyActivityAI.__init__(
         self,
         air,
         partyDoId,
         x,
         y,
         h,
         PartyGlobals.ActivityIds.PartyFireworks,
         PartyGlobals.ActivityTypes.HostInitiated,
     )
     self.eventId = eventId
     self.showStyle = showStyle
     self.activityFSM = FireworksActivityFSM(self)
示例#2
0
    def load(self):
        DistributedPartyFireworksActivity.notify.debug('load')
        DistributedPartyActivity.load(self)
        self.eventId = PartyGlobals.FireworkShows.Summer
        self.launchPadModel = loader.loadModel(
            'phase_13/models/parties/launchPad')
        self.launchPadModel.setH(90.0)
        self.launchPadModel.setPos(0.0, -18.0, 0.0)
        self.launchPadModel.reparentTo(self.root)
        railingsCollection = self.launchPadModel.findAllMatches(
            '**/launchPad_mesh/*railing*')
        for i in range(railingsCollection.getNumPaths()):
            railingsCollection[i].setAttrib(
                AlphaTestAttrib.make(RenderAttrib.MGreater, 0.75))

        leverLocator = self.launchPadModel.find('**/RocketLever_locator')
        self.lever.setPosHpr(Vec3.zero(), Vec3.zero())
        self.lever.reparentTo(leverLocator)
        self.toonPullingLeverInterval = None
        self.sign.reparentTo(
            self.launchPadModel.find('**/launchPad_sign_locator'))
        self.rocketActor = Actor(
            'phase_13/models/parties/rocket_model',
            {'launch': 'phase_13/models/parties/rocket_launch'})
        rocketLocator = self.launchPadModel.find('**/rocket_locator')
        self.rocketActor.reparentTo(rocketLocator)
        self.rocketActor.node().setBound(OmniBoundingVolume())
        self.rocketActor.node().setFinal(True)
        effectsLocator = self.rocketActor.find('**/joint1')
        self.rocketExplosionEffect = RocketExplosion(effectsLocator,
                                                     rocketLocator)
        self.rocketParticleSeq = None
        self.launchSound = base.loadSfx('phase_13/audio/sfx/rocket_launch.mp3')
        self.activityFSM = FireworksActivityFSM(self)
        self.activityFSM.request('Idle')
 def load(self):
     """
     Load the necessary assets
     """
     DistributedPartyFireworksActivity.notify.debug("load")
     DistributedPartyActivity.load(self)
     
     self.eventId = PartyGlobals.FireworkShows.Summer
     
     # load the rocket platform and place it in party space
     self.launchPadModel = loader.loadModel('phase_13/models/parties/launchPad')
     # Compensate for pivot of fireworks model and center it in 2x4 space
     self.launchPadModel.setH(90.0)
     self.launchPadModel.setPos(0.0, -18.0, 0.0)
     # reparent to root
     self.launchPadModel.reparentTo( self.root )
     # special case the depth testing on the railings to prevent
     # transparency oddness
     railingsCollection = self.launchPadModel.findAllMatches("**/launchPad_mesh/*railing*")
     for i in range( railingsCollection.getNumPaths() ):
         railingsCollection[i].setAttrib(AlphaTestAttrib.make(RenderAttrib.MGreater, 0.75))
             
     # place the lever on the platform
     leverLocator = self.launchPadModel.find("**/RocketLever_locator")
     self.lever.setPosHpr(Vec3.zero(), Vec3.zero())
     self.lever.reparentTo(leverLocator)
     self.toonPullingLeverInterval = None
     
     # place the activity sign
     self.sign.reparentTo( self.launchPadModel.find("**/launchPad_sign_locator") )
     
     # load the rocket with animation and place it on the platform
     self.rocketActor = Actor(
         'phase_13/models/parties/rocket_model',
         {'launch':'phase_13/models/parties/rocket_launch'},
     )
     
     rocketLocator = self.launchPadModel.find("**/rocket_locator")
     self.rocketActor.reparentTo(rocketLocator)
     # ensure the rocket is never culled
     self.rocketActor.node().setBound( OmniBoundingVolume() )
     self.rocketActor.node().setFinal( True )
     
     effectsLocator = self.rocketActor.find("**/joint1")
     self.rocketExplosionEffect  = RocketExplosion(effectsLocator, rocketLocator)
     
     self.rocketParticleSeq = None
     
     self.launchSound = base.loadSfx("phase_13/audio/sfx/rocket_launch.mp3")
     
     # create state machine and set initial state
     self.activityFSM = FireworksActivityFSM( self )
     self.activityFSM.request("Idle")