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 xrange(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.loader.loadSfx('phase_13/audio/sfx/rocket_launch.ogg') self.activityFSM = FireworksActivityFSM(self) self.activityFSM.request('Idle') return
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.loader.loadSfx( "phase_13/audio/sfx/rocket_launch.mp3") # create state machine and set initial state self.activityFSM = FireworksActivityFSM(self) self.activityFSM.request("Idle")