def createWorld(self): self.deleteWorld() self.arena = loader.loadModel( "phase_4/models/minigames/dodgeball_arena.egg") self.arena.reparentTo(render) self.arena.setScale(0.75) self.arena.find('**/team_divider').setBin('ground', 18) self.arena.find('**/floor').setBin('ground', 18) self.arena.find('**/team_divider_coll').setCollideMask( CIGlobals.FloorBitmask) for data in DistributedDodgeballGame.TreeData: code = data[0] pos = data[1] tree = self.__getSnowTree(code) tree.reparentTo(self.arena) tree.setPos(pos) self.trees.append(tree) for i in xrange(len(DistributedDodgeballGame.SnowballData)): snowdata = DistributedDodgeballGame.SnowballData[i] snowball = Snowball(self, i) snowball.load() snowball.reparentTo(render) snowball.setPos(snowdata) self.snowballs.append(snowball) self.olc = ZoneUtil.getOutdoorLightingConfig(ZoneUtil.TheBrrrgh) self.olc.setupAndApply()
def __async_loadSZTask(self, task=None): dnas = HOOD_ID_2_DNA[self.choice.lastHood] for i in xrange(len(dnas)): dnaFile = dnas[i] if i == len(dnas) - 1: node = loader.loadDNAFile(self.dnaStore, dnaFile) if node.getNumParents() == 1: self.szGeom = NodePath(node.getParent(0)) self.szGeom.reparentTo(render) else: self.szGeom = render.attachNewNode(node) # The 2D trees should not be flattened, to do that, we're going to traverse # the scene graph for all trees, use #wrtReparentTo(render) on them, flatten # the scene with #flattenStrong(), and finally #wrtReparentTo(self.szGeom) # the trees back to the main scene node so they get cleaned up properly. trees = self.szGeom.findAllMatches('**/*tree*') #self.szGeom.find("**/shadow").removeNode() #from panda3d.core import CullBinAttrib #self.szGeom.find("**/shadow_crack").setAttrib(CullBinAttrib.make("foreground", 10), 10) #shs = self.szGeom.findAllMatches("**/*shadow*") #for sh in shs: # sh.removeNode() # self.szGeom.ls() for tree in trees: tree.wrtReparentTo(render) self.szGeom.flattenStrong() for tree in trees: tree.wrtReparentTo(self.szGeom) else: loader.loadDNAFile(self.dnaStore, dnaFile) self.olc = ZoneUtil.getOutdoorLightingConfig(self.choice.lastHood) self.olc.setup() self.olc.apply() CIGlobals.preRenderScene(render) self.asyncSZLoadStatus = True #base.accept('l', render.ls) if task: return task.done
def load(self): self.deleteWorld() self.track = loader.loadModel(self.trackPath) self.track.reparentTo(render) self.olc = ZoneUtil.getOutdoorLightingConfig(ZoneUtil.ToontownCentral) self.olc.setupAndApply() self.setMinigameMusic("phase_4/audio/bgm/MG_toontag.ogg") self.setDescription("Tap the left and right arrow keys repeatedly, in turns, as fast as " + \ "you can to win the race! Every time your power bar hits the top, the boost bar starts" + \ " to fill. When the boost bar is full, press CTRL to boost for a few seconds.") self.setWinnerPrize(100) self.setLoserPrize(5) self.d_requestToonLane() camera.reparentTo(render) camera.setPos(self.initialCamPos["pos"]) camera.setHpr(self.initialCamPos["hpr"]) DistributedMinigame.DistributedMinigame.load(self)
def announceGenerate(self): DistributedBattleZone.announceGenerate(self) base.transitions.fadeScreen(0.0) self.guide = Toon(base.cr) self.guide.autoClearChat = False self.guide.parseDNAStrand(NPCGlobals.NPCToonDict[self.GUIDE_NPCID][2]) self.guide.setName(NPCGlobals.NPCToonDict[self.GUIDE_NPCID][1]) self.guide.generateToon() self.guide.nametag.setNametagColor( NametagGlobals.NametagColors[NametagGlobals.CCNPC]) self.guide.nametag.setActive(0) self.guide.nametag.updateAll() self.guide.nametag.getNametag3d().setClickEvent('tutGuide-click') self.guide.nametag.getNametag2d().setClickEvent('tutGuide-click') self.guide.reparentTo(render) base.localAvatar.reparentTo(render) loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/storage_tutorial.pdna') node = loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/tutorial_street.pdna') if node.getNumParents() == 1: self.streetGeom = NodePath(node.getParent(0)) self.streetGeom.reparentTo(hidden) else: self.streetGeom = hidden.attachNewNode(node) self.streetGeom.flattenMedium() gsg = base.win.getGsg() if gsg: self.streetGeom.prepareScene(gsg) self.streetGeom.reparentTo(render) self.streetGeom.setPos(20.5, -20, 0) self.streetGeom.setH(90) self.olc = ZoneUtil.getOutdoorLightingConfig(ZoneUtil.ToontownCentral) self.olc.setupAndApply() base.playMusic('TC_SZ') self.fsm.request('newPlayerEmerge') base.localAvatar.inTutorial = True
def load(self): spawn = random.choice(DGG.SpawnPoints) base.localAvatar.setPos(spawn) base.localAvatar.setHpr(0, 0, 0) self.soundPickUpBarrel = base.loadSfx( 'phase_6/audio/sfx/SZ_MM_gliss.ogg') self.soundDropOff = base.loadSfx( 'phase_4/audio/sfx/MG_sfx_travel_game_bell_for_trolley.ogg') self.soundBeep = base.loadSfx( 'phase_4/audio/sfx/MG_delivery_truck_beep.ogg') self.soundDoorOpen = base.loadSfx( "phase_9/audio/sfx/CHQ_VP_door_open.ogg") self.setMinigameMusic('phase_4/audio/bgm/MG_Delivery.ogg') self.setDescription('A new supply of Gags were just shipped to Toontown! ' + \ 'Run over to a truck with Gag barrels to take a barrel out. Then, carry it over to the Gag Shop. ' + \ 'Try to unload and deliver as many barrels as you can to the Gag Shop. ' + \ 'Watch out for the Cogs - they might try to snatch a barrel!') self.setWinnerPrize(100) self.setLoserPrize(0) self.gagShop = loader.loadModel( 'phase_4/models/modules/gagShop_TT.bam') self.gagShop.reparentTo(base.render) self.gagShop.setY(-70) sphere = CollisionSphere(0, 0, 0, 3) sphere.setTangible(0) node = CollisionNode('MGDeliveryGagShop') node.addSolid(sphere) self.gagShopCollNP = self.gagShop.attachNewNode(node) self.world = loader.loadModel( 'phase_4/models/minigames/delivery_area.egg') self.world.setY(-5) self.world.reparentTo(base.render) self.world.find('**/ground').setBin('ground', 18) self.olc = ZoneUtil.getOutdoorLightingConfig(ZoneUtil.ToontownCentral) self.olc.setupAndApply() base.camera.setPos(20, 50, 30) base.camera.lookAt(20, 0, 7.5) DistributedMinigame.load(self)
def __init__(self): self.gui = None self.mopath = None self.platform = None self.platformNode = None self.lLineSeg = None self.rLineSeg = None self.crates = [] self.music = base.loadMusic('phase_4/audio/bgm/MG_Crash_brrrgh.ogg') self.dnaStore = DNAStorage() loadDNAFile(self.dnaStore, 'phase_4/dna/storage.pdna') loadDNAFile(self.dnaStore, 'phase_5/dna/storage_town.pdna') loadDNAFile(self.dnaStore, 'phase_8/dna/storage_BR.pdna') loadDNAFile(self.dnaStore, 'phase_8/dna/storage_BR_town.pdna') node = loadDNAFile(self.dnaStore, 'phase_4/dna/test_brrrgh_ch_lvl.pdna') if node.getNumParents() == 1: geom = NodePath(node.getParent(0)) geom.reparentTo(hidden) else: geom = hidden.attachNewNode(node) gsg = base.win.getGsg() if gsg: geom.prepareScene(gsg) geom.setName('test_level') geom.reparentTo(render) self.olc = ZoneUtil.getOutdoorLightingConfig(CIGlobals.TheBrrrgh) self.olc.setupAndApply() self.area = geom self.area.setH(90) self.lastCamPos = Point3(0, 0, 0) self.lastCamHpr = Vec3(0, 0, 0) self.lastCamNodeH = 0.0 self.camNode = render.attachNewNode('crashCamNode') camera.reparentTo(self.camNode) base.minigame = self #self.camCurve = loader.loadModel('crash_test_cam_path.egg') #self.camMoPath = NURBSMopath(self.camCurve) #self.camMoPath.node = camera #self.camNodes = self.camMoPath.evaluator.getVertices() # X Y Z H self.camNodes = [VBase4(-20, 0, 7.5, 0), VBase4(-20, 130, 7.5, -90), VBase4(60, 130, 7.5, -90)] self.localAv = LocalCrashToon(base.localAvatar) #base.transitions.noTransitions() #base.enableMouse() #base.localAvatar.stopSmartCamera() #base.localAvatar.detachCamera() #self.cra = Actor('phase_4/models/minigames/crash_crate.egg', {'bounce': 'phase_4/models/minigames/crash_crate-bounce.egg'}) #self.cra.reparentTo(render) #self.cra.loop('bounce') #self.cra.setPos(100, 100, 0) #self.cra.ls() base.acceptOnce('s', self.start)
def load(self): if not self.level: self.notify.warning('Attempted to load a null level!') return self.unload() data = self.levelData[self.level] # Are we loading a DNA level? if data.get('dna'): dnaFiles = data['dna'] loadDNAFile(self.dnaStore, 'phase_4/dna/storage.pdna') for index in range(len(dnaFiles)): if 'storage' not in dnaFiles[index]: # It's an environment file, let's load that up and reparent it to render. node = loader.loadDNAFile(self.dnaStore, dnaFiles[index]) if node.getNumParents() == 1: self.levelGeom = NodePath(node.getParent(0)) self.levelGeom.reparentTo(hidden) else: self.levelGeom = hidden.attachNewNode(node) self.levelGeom.flattenMedium() gsg = base.win.getGsg() if gsg: self.levelGeom.prepareScene(gsg) self.levelGeom.reparentTo(render) else: # It's just a storage file, let's just load that up. loadDNAFile(self.dnaStore, dnaFiles[index]) elif data.get('models'): models = data['models'] for model, modifiers in models.items(): mdl = loader.loadModel(model) if modifiers.get('name'): mdl.setName(modifiers['name']) if modifiers.get('hpr'): mdl.setHpr(modifiers['hpr']) if modifiers.get('pos'): mdl.setPos(modifiers['pos']) if modifiers.get('scale'): mdl.setScale(modifiers['scale']) if modifiers.get('parent'): mdl.reparentTo(modifiers['parent']) else: mdl.reparentTo(render) self.models.append(mdl) else: self.notify.warning( 'Attempted to load a level with no data on how to generate it. Level is empty!' ) return self.olc = ZoneUtil.getOutdoorLightingConfig(data.get('name')) self.olc.setupAndApply() self.levelLoaded()
def load(self): self.unload() if self.loadingText: self.loadingText.destroy() self.loadingText = None self.loadingText = OnscreenText(text = "", font = CIGlobals.getMinnieFont(), fg = (1, 1, 1, 1)) self.loadingText.setBin('gui-popup', 0) base.graphicsEngine.renderFrame() base.graphicsEngine.renderFrame() if self.levelName == "momada": # momada is completely different from the other levels, # so it has it's own separate method for loading. self.__momadaLoad() elif self.levelName in ['cbhq', 'sbf']: # Cog hqs are just one model with everything in it. no dna loading needed. modelPath = self.LevelData[self.levelName]['model'] self.levelGeom = loader.loadModel(modelPath) self.levelGeom.flattenMedium() self.levelGeom.reparentTo(render) if self.LevelData[self.levelName].get('occluders'): self.occluders = loader.loadModel(self.LevelData[self.levelName]['occluders']) for occluderNode in self.occluders.findAllMatches('**/+OccluderNode'): base.render.setOccluder(occluderNode) occluderNode.node().setDoubleSided(True) if self.levelName == 'sbf': base.camLens.setFar(250) else: # It's a playground with dna and stuff. Just do the # normal loading procedure. dnaFiles = self.LevelData[self.levelName]['dna'] loadDNAFile(self.dnaStore, 'phase_4/dna/storage.pdna') for index in range(len(dnaFiles)): if index == len(dnaFiles) - 1: node = loadDNAFile(self.dnaStore, dnaFiles[index]) if node.getNumParents() == 1: self.levelGeom = NodePath(node.getParent(0)) self.levelGeom.reparentTo(hidden) else: self.levelGeom = hidden.attachNewNode(node) if self.levelName == 'ttc' and dnaFiles[index] == 'phase_4/dna/new_ttc_sz.pdna': self.levelGeom.find('**/prop_gazebo_DNARoot').removeNode() else: self.levelGeom.flattenMedium() gsg = base.win.getGsg() if gsg: self.levelGeom.prepareScene(gsg) self.levelGeom.reparentTo(render) else: loadDNAFile(self.dnaStore, dnaFiles[index]) children = self.levelGeom.findAllMatches('**/*doorFrameHole*') for child in children: child.hide() self.olc = ZoneUtil.getOutdoorLightingConfig(self.LevelData[self.levelName].get('name')) self.olc.setupAndApply() if self.loadingText: self.loadingText.destroy() self.loadingText = None