def customMusicTask(self, volume, type, task): if type == -1: return customSongs = self.getCustomSongs(type) songName = random.choice(customSongs.keys()) songChoice = customSongs[songName] self.activityMusicOverride = base.loader.loadMusic(songChoice) base.playMusic(self.activityMusicOverride, looping=0, volume=volume) signOrigin = render.find('**/sign_origin;+s') if not signOrigin.isEmpty(): songNameNP = render.find('**/songName') if not songNameNP.isEmpty(): songNameNP.removeNode() songNameNP = signOrigin.attachNewNode(TextNode('songName')) if not type: font = ToontownGlobals.getSignFont() else: font = ToontownGlobals.getFancyFont() songNameNP.node().setTextColor(0.501961, 0, 0.25098, 1) songNameNP.node().setFont(font) songNameNP.node().setText(songName) songNameNP.setDepthWrite(1, 1) songNameNP.flattenLight() ll = Point3() ur = Point3() songNameNP.calcTightBounds(ll, ur) width = ur[0] - ll[0] height = ur[2] - ll[2] if width != 0 and height != 0: xScale = 8 / width zScale = 5.0 / height scale = min(xScale, zScale) if len(songName) < 15: scale = scale - 0.85 xCenter = (ur[0] + ll[0]) / 2.0 songNameNP.setZ(songNameNP.getZ() - 2.25) songNameNP.setX(0 / 2.0 - xCenter * scale) songNameNP.setScale(scale) task.delayTime = self.activityMusicOverride.length() + 2.0 return task.again
def setup(self): self.dnaStore = base.cr.playGame.dnaStore self.randomGenerator = random.Random() self.randomGenerator.seed(self.zoneId) interior = self.randomDNAItem('TI_room', self.dnaStore.findNode) self.interior = interior.copyTo(render) hoodId = ZoneUtil.getCanonicalHoodId(self.zoneId) self.colors = ToonInteriorColors.colors[hoodId] self.replaceRandomInModel(self.interior) doorModelName = 'door_double_round_ul' if doorModelName[-1:] == 'r': doorModelName = doorModelName[:-1] + 'l' else: doorModelName = doorModelName[:-1] + 'r' door = self.dnaStore.findNode(doorModelName) door_origin = render.find('**/door_origin;+s') doorNP = door.copyTo(door_origin) door_origin.setScale(0.8, 0.8, 0.8) door_origin.setPos(door_origin, 0, -0.025, 0) color = self.randomGenerator.choice(self.colors['TI_door']) DNADoor.setupDoor(doorNP, self.interior, door_origin, self.dnaStore, str(self.block), color) doorFrame = doorNP.find('door_*_flat') doorFrame.wrtReparentTo(self.interior) doorFrame.setColor(color) sign = hidden.find('**/sz%s:*_landmark_*_DNARoot/**/sign;+s' % (self.block, )) if not sign.isEmpty(): signOrigin = self.interior.find('**/sign_origin;+s') newSignNP = sign.copyTo(signOrigin) mat = self.dnaStore.getSignTransformFromBlockNumber(int( self.block)) inv = Mat4(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) inv.invertFrom(mat) newSignNP.setMat(inv) newSignNP.flattenLight() ll = Point3() ur = Point3() newSignNP.calcTightBounds(ll, ur) width = ur[0] - ll[0] height = ur[2] - ll[2] if width != 0 and height != 0: xScale = (SIGN_RIGHT - SIGN_LEFT) / width zScale = (SIGN_TOP - SIGN_BOTTOM) / height scale = min(xScale, zScale) xCenter = (ur[0] + ll[0]) / 2.0 zCenter = (ur[2] + ll[2]) / 2.0 newSignNP.setPosHprScale( (SIGN_RIGHT + SIGN_LEFT) / 2.0 - xCenter * scale, -0.1, (SIGN_TOP + SIGN_BOTTOM) / 2.0 - zCenter * scale, 0.0, 0.0, 0.0, scale, scale, scale) newSignNP.setZ(newSignNP.getZ() + 2.3) memorialNP = signOrigin.attachNewNode(TextNode('thankYouText')) memorialNP.node().setFont(ToontownGlobals.getFancyFont()) memorialNP.node().setText(TTLocalizer.PrivateServerTribute) memorialNP.node().setTextColor(0.501961, 0, 0.25098, 1) memorialNP.node().setAlign(TextNode.ACenter) memorialNP.setDepthWrite(1, 1) memorialNP.flattenLight() memorialNP.setZ(memorialNP.getZ() + 4.95) memorialNP.setScale(0.35) nowPlayingNP = signOrigin.attachNewNode( TextNode('nowPlayingText')) nowPlayingNP.node().setFont(ToontownGlobals.getFancyFont()) nowPlayingNP.node().setText(TTLocalizer.TributeSongPlaying) nowPlayingNP.node().setTextColor(0.501961, 0, 0.25098, 1) nowPlayingNP.setDepthWrite(1, 1) nowPlayingNP.flattenLight() nowPlayingNP.setX(nowPlayingNP.getX() - 2.35) nowPlayingNP.setZ(nowPlayingNP.getZ() - 1.35) nowPlayingNP.setScale(0.65) trophyOrigin = self.interior.find('**/trophy_origin') pos = 1.25 - 5.0 imageFrames = hidden.attachNewNode('imageFrames') cm = CardMaker('card') for i in xrange(4): frame = loader.loadModel('phase_3.5/models/modules/trophy_frame') frame.setScale(FrameScale, 1.0, FrameScale) frame.reparentTo(imageFrames) frame.setPos(pos, 0, 0) imageCard = frame.attachNewNode(cm.generate()) imageTex = loader.loadTexture('phase_14.5/maps/tt_logo_%s.png' % (i + 1)) imageCard.setTexture(imageTex) imageCard.setX(imageCard.getX() - 0.5) imageCard.setZ(imageCard.getZ() - 0.5) imageCard.setDepthOffset(1000) imageCard.setTransparency(TransparencyAttrib.MAlpha) imageCard.flattenLight() pos += 2.5 if imageFrames: imageFrames.reparentTo(trophyOrigin) del self.colors del self.dnaStore del self.randomGenerator self.interior.flattenMedium()