def disable(self): try: self.Toon_disabled except: self.Toon_disabled = 1 self.backpack = None self.stopAnimations() self.removeAdminToken() ToonHead.delete(self) self.deleteCurrentToon() self.chatSoundDict = {} Avatar.Avatar.disable(self)
def disable(self): try: self.Toon_disabled except: self.Toon_disabled = 1 self.backpack = None self.stopAnimations() self.removeAdminToken() ToonHead.delete(self) self.deleteCurrentToon() self.chatSoundDict = {} return
def createGui(self): base.cr.renderFrame() self.m = loader.loadFont('phase_3/models/fonts/MickeyFont.bam') self.bg = loader.loadModel('phase_3/models/gui/tt_m_gui_pat_mainGui.bam') self.qtbtn = loader.loadModel('phase_3/models/gui/quit_button.bam') self.trash_gui = loader.loadModel('phase_3/models/gui/trashcan_gui.bam') self.bg_img = OnscreenImage(image=self.bg.find('**/tt_t_gui_pat_background')) self.setTitle('Pick A Toon To Play') base.setBackgroundColor(self.BgColor) self.btn1 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareGreen'), relief=None, pos=(0.012, 0, 0.306), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn2 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squarePink'), relief=None, pos=(0.01, 0, -0.515), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn3 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareRed'), relief=None, pos=(-0.84, 0, 0.36), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn4 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareYellow'), relief=None, pos=(0.865, 0, -0.45), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn5 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareBlue'), relief=None, pos=(-0.87, 0, -0.44), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn6 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squarePurple'), relief=None, pos=(0.873, 0, 0.335), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.quit_btn = DirectButton(geom=(self.qtbtn.find('**/QuitBtn_RLVR'), self.qtbtn.find('**/QuitBtn_RLVR'), self.qtbtn.find('**/QuitBtn_RLVR')), relief=None, text='Quit', text_font=self.m, text_scale=0.105, text_pos=(0, -0.035), pos=(1.05, 0, -0.9), text_fg=(1, 0.9, 0.1, 1), geom1_scale=(1.02, 1, 1), geom2_scale=(1.02, 1, 1), command=self.quitGame) self.btnList = [] self.btnList.append(self.btn1) self.btnList.append(self.btn2) self.btnList.append(self.btn3) self.btnList.append(self.btn4) self.btnList.append(self.btn5) self.btnList.append(self.btn6) self.headList = [] for slot in range(6): if self.avChooser.hasToonInSlot(slot): notify.info('found existing Toon in slot %s' % str(slot)) frame = DirectFrame(relief=None, parent=self.btnList[slot], pos=(0, 0, -0.1)) headframe = hidden.attachNewNode('head') headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24) headframe.reparentTo(self.btnList[slot].stateNodePath[0], 20) headframe.instanceTo(self.btnList[slot].stateNodePath[1], 20) headframe.instanceTo(self.btnList[slot].stateNodePath[2], 20) toon = ToonHead(base.cr) self.headList.append(toon) gender, animal, head, headcolor = self.avChooser.getHeadInfo(slot) toon.generateHead(gender, animal, head, 1) toon.getGeomNode().setDepthWrite(1) toon.getGeomNode().setDepthTest(1) toon.startBlink() toon.startLookAround() toon.reparentTo(headframe) toon.setHeadColor(headcolor) toon.flattenLight() name_lbl = DirectLabel(text=self.avChooser.getNameInSlot(slot), text_scale=0.08, text_fg=(1, 1, 1, 1), text_wordwrap=7, relief=None, text_shadow=(0, 0, 0, 1)) name_lbl.reparentTo(self.btnList[slot].stateNodePath[0], 20) name_lbl.instanceTo(self.btnList[slot].stateNodePath[1], 20) name_lbl.instanceTo(self.btnList[slot].stateNodePath[2], 20) name_lbl.setPos(self.name_pos[slot]) name_lbl.setHpr(self.name_hpr[slot]) self.btnList[slot]['text'] = ('', 'Play This Toon', 'Play This Toon', '') self.btnList[slot]['text_scale'] = 0.1 self.btnList[slot]['text_pos'] = (0, 0) self.btnList[slot]['text_fg'] = (1, 0.9, 0, 1) self.btnList[slot]['text_wordwrap'] = 6 self.btnList[slot]['text_font'] = self.m self.btnList[slot]['command'] = self.fadeMenu self.btnList[slot]['extraArgs'] = ['playGame', slot] delBtn = DirectButton(text=('', 'Delete', 'Delete', ''), text_scale=0.15, scale=0.5, text_pos=(0, -0.1), text_fg=(1, 1, 1, 1), relief=None, geom=(self.trash_gui.find('**/TrashCan_CLSD'), self.trash_gui.find('**/TrashCan_OPEN'), self.trash_gui.find('**/TrashCan_RLVR')), pos=self.trash_pos[slot], command=self.deleteToon, extraArgs=[self.avChooser.getAvChoiceBySlot(slot).getAvId()], text_shadow=(0, 0, 0, 1)) delBtn.reparentTo(self.btnList[slot].stateNodePath[0], 20) delBtn.instanceTo(self.btnList[slot].stateNodePath[1], 20) delBtn.instanceTo(self.btnList[slot].stateNodePath[2], 20) else: self.btnList[slot]['text'] = 'Make A Toon' self.btnList[slot]['text_font'] = self.m self.btnList[slot]['text0_scale'] = 0.1 self.btnList[slot]['text1_scale'] = 0.12 self.btnList[slot]['text2_scale'] = 0.12 self.btnList[slot]['text3_scale'] = 0.1 self.btnList[slot]['text0_fg'] = (0, 1, 0.8, 0.5) self.btnList[slot]['text1_fg'] = (0, 1, 0.8, 1) self.btnList[slot]['text2_fg'] = (0.3, 1, 0.9, 1) self.btnList[slot]['text3_fg'] = (0, 1, 0.8, 0.5) self.btnList[slot]['text_font'] = self.m self.btnList[slot]['command'] = self.fadeMenu self.btnList[slot]['extraArgs'] = ['mat', slot] self.btnList[slot]['text_wordwrap'] = 6 return
def generateOtherPlayerGui(self): for avId in self.doId2Frame.keys(): self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId] = {} headNumber = -1 frame = self.doId2Frame[avId][0] otherPlayerHeadsFrame = DirectFrame(relief=None, scale=0.85, parent=frame) otherPlayerHeadsFrame['image'] = frame['image'] otherPlayerHeadsFrame['image_color'] = frame['image_color'] otherPlayerHeadsFrame[ 'image_scale'] = self.otherPlayerHeadHolderTransforms['scale'] otherPlayerHeadsFrame.setPos( self.otherPlayerHeadHolderTransforms['pos']) otherPlayerHeadsFrame.setBin('gui-popup', 70) self.frameList.append(otherPlayerHeadsFrame) for otherAvId in self.doId2Frame.keys(): if otherAvId != avId: headNumber += 1 otherAv = base.cr.doId2do.get(otherAvId) gender = otherAv.getGender() head, color = otherAv.getHeadStyle() animal = otherAv.getAnimal() headFrame = otherPlayerHeadsFrame.attachNewNode( 'otherPlayerHeadFrame') headFrame.setPosHprScale( self.otherPlayerHeadXValues[headNumber], 5, -0.1, 180, 0, 0, 0.2, 0.2, 0.2) headFrame.setColorScale(self.state2Color[0]) toon = ToonHead(None) toon.generateHead(gender, animal, head) r, g, b, _ = color color = (r, g, b, 1.0) toon.setHeadColor(color) toon.setDepthWrite(1) toon.setDepthTest(1) toon.reparentTo(headFrame) self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId][ otherAvId] = headFrame
def generate(self, gender, head, headtype, color, doId, name, valueLabel=1): gui = loader.loadModel('phase_3/models/gui/pick_a_toon_gui.bam') bg = gui.find('**/av-chooser_Square_UP') container = DirectFrame(relief=None, scale=0.3, parent=base.a2dTopLeft) container['image'] = bg container['image_color'] = self.frameColors[len(self.frameList)] container.setBin('gui-popup', 60) container.setPos(self.framePositions[len(self.frameList)]) headframe = container.attachNewNode('head') headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24) toon = ToonHead(None) toon.generateHead(gender, head, headtype) r, g, b = color color = (r, g, b, 1.0) toon.setHeadColor(color) toon.setDepthWrite(1) toon.setDepthTest(1) toon.reparentTo(headframe) nameLbl = DirectLabel(text=name, text_wordwrap=7.0, parent=container, text_scale=0.13, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0, 0, 0.25)) if valueLabel: someValueToBroadcast = DirectLabel(text='0', parent=container, text_scale=0.15, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0.26, 0, -0.28)) self.frameList.append(container) if valueLabel: self.doId2Frame[doId] = tuple( (container, headframe, toon, nameLbl, someValueToBroadcast)) else: self.doId2Frame[doId] = tuple( (container, headframe, toon, nameLbl)) return
def generateOtherPlayerGui(self): for avId in self.doId2Frame.keys(): self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId] = {} headNumber = -1 frame = self.doId2Frame[avId][0] otherPlayerHeadsFrame = DirectFrame(relief=None, scale=0.85, parent=frame) otherPlayerHeadsFrame['image'] = frame['image'] otherPlayerHeadsFrame['image_color'] = frame['image_color'] otherPlayerHeadsFrame['image_scale'] = self.otherPlayerHeadHolderTransforms['scale'] otherPlayerHeadsFrame.setPos(self.otherPlayerHeadHolderTransforms['pos']) otherPlayerHeadsFrame.setBin('gui-popup', 70) self.frameList.append(otherPlayerHeadsFrame) for otherAvId in self.doId2Frame.keys(): if otherAvId != avId: headNumber += 1 otherAv = base.cr.doId2do.get(otherAvId) gender = otherAv.getGender() head, color = otherAv.getHeadStyle() animal = otherAv.getAnimal() headFrame = otherPlayerHeadsFrame.attachNewNode('otherPlayerHeadFrame') headFrame.setPosHprScale(self.otherPlayerHeadXValues[headNumber], 5, -0.1, 180, 0, 0, 0.2, 0.2, 0.2) headFrame.setColorScale(self.state2Color[0]) toon = ToonHead(None) toon.generateHead(gender, animal, head) r, g, b, _ = color color = (r, g, b, 1.0) toon.setHeadColor(color) toon.setDepthWrite(1) toon.setDepthTest(1) toon.reparentTo(headFrame) self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId][otherAvId] = headFrame return
def generateHead(self, pat = 0): gender = self.getGender() head = self.getAnimal() headtype = self.getHead() ToonHead.generateHead(self, gender, head, headtype)
def __init__(self, cr, mat = 0): self.cr = cr try: self.Toon_initialized return except: self.Toon_initialized = 1 Avatar.Avatar.__init__(self, mat) ToonDNA.ToonDNA.__init__(self) ToonHead.__init__(self, cr) self.forwardSpeed = 0.0 self.rotateSpeed = 0.0 self.avatarType = CIGlobals.Toon self.track = None self.standWalkRunReverse = None self.playingAnim = None self.tag = None self.money = 0 self.lookAtTrack = None self.portal1 = None self.portal2 = None self.gunAttached = False self.gun = None self.tokenIcon = None self.tokenIconIval = None self.backpack = None self.forcedTorsoAnim = None self.fallSfx = base.audio3d.loadSfx('phase_4/audio/sfx/MG_cannon_hit_dirt.mp3') base.audio3d.attachSoundToObject(self.fallSfx, self) self.eyes = loader.loadTexture('phase_3/maps/eyes.jpg', 'phase_3/maps/eyes_a.rgb') self.myTaskId = random.uniform(0, 1231231232132131231232L) self.closedEyes = loader.loadTexture('phase_3/maps/eyesClosed.jpg', 'phase_3/maps/eyesClosed_a.rgb') self.soundChatBubble = loader.loadSfx('phase_3/audio/sfx/GUI_balloon_popup.mp3') self.shadowCaster = None self.chatSoundDict = {} self.animFSM = ClassicFSM('Toon', [State('off', self.enterOff, self.exitOff), State('neutral', self.enterNeutral, self.exitNeutral), State('swim', self.enterSwim, self.exitSwim), State('walk', self.enterWalk, self.exitWalk), State('run', self.enterRun, self.exitRun), State('openBook', self.enterOpenBook, self.exitOpenBook), State('readBook', self.enterReadBook, self.exitReadBook), State('closeBook', self.enterCloseBook, self.exitCloseBook), State('teleportOut', self.enterTeleportOut, self.exitTeleportOut), State('teleportIn', self.enterTeleportIn, self.exitTeleportIn), State('died', self.enterDied, self.exitDied), State('fallFWD', self.enterFallFWD, self.exitFallFWD), State('fallBCK', self.enterFallBCK, self.exitFallBCK), State('jump', self.enterJump, self.exitJump), State('leap', self.enterLeap, self.exitLeap), State('laugh', self.enterLaugh, self.exitLaugh), State('happy', self.enterHappyJump, self.exitHappyJump), State('shrug', self.enterShrug, self.exitShrug), State('hdance', self.enterHDance, self.exitHDance), State('wave', self.enterWave, self.exitWave), State('scientistEmcee', self.enterScientistEmcee, self.exitScientistEmcee), State('scientistWork', self.enterScientistWork, self.exitScientistWork), State('scientistGame', self.enterScientistGame, self.exitScientistGame), State('scientistJealous', self.enterScientistJealous, self.exitScientistJealous), State('cringe', self.enterCringe, self.exitCringe), State('conked', self.enterConked, self.exitConked), State('win', self.enterWin, self.exitWin), State('walkBack', self.enterWalkBack, self.exitWalkBack), State('deadNeutral', self.enterDeadNeutral, self.exitDeadNeutral), State('deadWalk', self.enterDeadWalk, self.exitDeadWalk), State('squish', self.enterSquish, self.exitSquish), State('Happy', self.enterHappy, self.exitHappy), State('Sad', self.enterSad, self.exitSad)], 'off', 'off') animStateList = self.animFSM.getStates() self.animFSM.enterInitialState() if not hasattr(base, 'localAvatar') or not base.localAvatar == self: Avatar.Avatar.initializeBodyCollisions(self, self.avatarType, 3, 1) return
def generate(self, gender, head, headtype, color, doId, name): gui = loader.loadModel("phase_3/models/gui/pick_a_toon_gui.bam") bg = gui.find("**/av-chooser_Square_UP") container = DirectFrame(relief=None, scale=0.3, parent=base.a2dTopLeft) container["image"] = bg container["image_color"] = self.frameColors[len(self.frameList)] container.setPos(self.framePositions[len(self.frameList)]) headframe = container.attachNewNode("head") headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24) toon = ToonHead(None) toon.generateHead(gender, head, headtype) r, g, b = color color = (r, g, b, 1.0) toon.setHeadColor(color) toon.setDepthWrite(1) toon.setDepthTest(1) toon.reparentTo(headframe) nameLbl = DirectLabel( text=name, text_wordwrap=7.0, parent=container, text_scale=0.13, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0, 0, 0.25), ) cardCount = DirectLabel( text="0", parent=container, text_scale=0.15, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0.26, 0, -0.28), ) self.frameList.append(container) self.doId2Frame[doId] = tuple((container, headframe, toon, nameLbl, cardCount)) return
def generateHead(self, pat=0): gender = self.getGender() head = self.getAnimal() headtype = self.getHead() ToonHead.generateHead(self, gender, head, headtype)
def __init__(self, cr, mat=0): self.cr = cr try: self.Toon_initialized return except: self.Toon_initialized = 1 Avatar.Avatar.__init__(self, mat) ToonDNA.ToonDNA.__init__(self) ToonHead.__init__(self, cr) self.forwardSpeed = 0.0 self.rotateSpeed = 0.0 self.strafeSpeed = 0.0 self.avatarType = CIGlobals.Toon self.track = None self.standWalkRunReverse = None self.playingAnim = None self.playingRate = None self.tag = None self.money = 0 self.lookAtTrack = None self.portal1 = None self.portal2 = None self.gunAttached = False self.gun = None self.tokenIcon = None self.tokenIconIval = None self.forcedTorsoAnim = None self.fallSfx = base.audio3d.loadSfx( "phase_4/audio/sfx/MG_cannon_hit_dirt.ogg") base.audio3d.attachSoundToObject(self.fallSfx, self) self.eyes = loader.loadTexture("phase_3/maps/eyes.jpg", "phase_3/maps/eyes_a.rgb") self.myTaskId = random.uniform(0, 1231231232132131231232) self.closedEyes = loader.loadTexture("phase_3/maps/eyesClosed.jpg", "phase_3/maps/eyesClosed_a.rgb") self.soundChatBubble = loader.loadSfx( "phase_3/audio/sfx/GUI_balloon_popup.ogg") self.shadowCaster = None self.chatSoundDict = {} self.backpack = None self.animFSM = ClassicFSM('Toon', [ State('off', self.enterOff, self.exitOff), State('neutral', self.enterNeutral, self.exitNeutral), State('swim', self.enterSwim, self.exitSwim), State('walk', self.enterWalk, self.exitWalk), State('run', self.enterRun, self.exitRun), State('openBook', self.enterOpenBook, self.exitOpenBook), State('readBook', self.enterReadBook, self.exitReadBook), State('closeBook', self.enterCloseBook, self.exitCloseBook), State('teleportOut', self.enterTeleportOut, self.exitTeleportOut), State('teleportIn', self.enterTeleportIn, self.exitTeleportIn), State('died', self.enterDied, self.exitDied), State('fallFWD', self.enterFallFWD, self.exitFallFWD), State('fallBCK', self.enterFallBCK, self.exitFallBCK), State('jump', self.enterJump, self.exitJump), State('leap', self.enterLeap, self.exitLeap), State('laugh', self.enterLaugh, self.exitLaugh), State('happy', self.enterHappyJump, self.exitHappyJump), State('shrug', self.enterShrug, self.exitShrug), State('hdance', self.enterHDance, self.exitHDance), State('wave', self.enterWave, self.exitWave), State('scientistEmcee', self.enterScientistEmcee, self.exitScientistEmcee), State('scientistWork', self.enterScientistWork, self.exitScientistWork), State('scientistGame', self.enterScientistGame, self.exitScientistGame), State('scientistJealous', self.enterScientistJealous, self.exitScientistJealous), State('cringe', self.enterCringe, self.exitCringe), State('conked', self.enterConked, self.exitConked), State('win', self.enterWin, self.exitWin), State('walkBack', self.enterWalkBack, self.exitWalkBack), State('deadNeutral', self.enterDeadNeutral, self.exitDeadNeutral), State('deadWalk', self.enterDeadWalk, self.exitDeadWalk), State('squish', self.enterSquish, self.exitSquish), State('Happy', self.enterHappy, self.exitHappy), State('Sad', self.enterSad, self.exitSad) ], 'off', 'off') animStateList = self.animFSM.getStates() self.animFSM.enterInitialState() if not hasattr(base, 'localAvatar') or not base.localAvatar == self: Avatar.Avatar.initializeBodyCollisions(self, self.avatarType, 3, 1)
def __init__(self, mg, king, points): DirectFrame.__init__(self, parent=aspect2d) self.setBin('gui-popup', 60) self.mg = mg box = DGG.getDefaultDialogGeom() self.bg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(1.9, 1.4, 1.4), parent=self) toonFont = CIGlobals.getToonFont() minnieFont = CIGlobals.getMinnieFont() name = 'Nobody' if king: name = king.getName() self.kingId = king.doId else: king = base.localAvatar self.kingId = 0 self.title = OnscreenText(text='%s is King!' % name, pos=(0, 0.5, 0), font=toonFont, scale=0.12, parent=self, shadow=(0.5, 0.5, 0.5, 0.6)) headFrame = self.attachNewNode('head') headFrame.setPosHprScale(0, 0, -0.1, 180, 0, 0, 0.3, 0.3, 0.3) toon = ToonHead(None) toon.generateHead(king.getGender(), king.getAnimal(), king.getHead()) r, g, b, a = king.getHeadColor() color = (r, g, b, a) toon.setHeadColor(color) toon.setDepthWrite(1) toon.setDepthTest(1) toon.reparentTo(headFrame) self.amt_label = OnscreenText(text='Your Points: 0', pos=(-0.012, -0.4, 0), font=toonFont, scale=0.12, parent=self, shadow=(0.5, 0.5, 0.5, 0.6)) self.amt_label.hide() self.motivator = OnscreenText(text='Better luck next time!', pos=(0, -0.6, 0), font=minnieFont, scale=0.125, parent=self, fg=(1, 0, 0, 1), shadow=(0.2, 0.2, 0.2, 1)) self.motivator.hide() self.easterEgg = False if 50 < points != 100: self.motivator['fg'] = (0, 1, 0, 1) self.motivator.setText('Great job!') else: if points == 100: self.motivator['fg'] = (0, 1, 0, 1) if random.randint(0, 100) <= 10: self.motivator.setText('YOU THE REAL MVP!') self.easterEgg = True else: self.motivator.setText('AMAZING!') self.zeroPointsSfx = loader.loadSfx('phase_4/audio/sfx/MG_neg_buzzer.ogg') self.poorScoreSfx = loader.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_no_bonus.ogg') self.goodScoreSfx = loader.loadSfx('phase_4/audio/sfx/MG_pairing_match_bonus_both.ogg') self.stomperSfx = loader.loadSfx('phase_4/audio/sfx/CHQ_FACT_stomper_small.ogg') self.fireworkSfx = loader.loadSfx('phase_4/audio/sfx/firework_explosion_02.ogg') self.perfectSfx = loader.loadSfx('phase_5/audio/sfx/SZ_MM_fanfare.ogg') self.tick_fastSfx = loader.loadSfx('phase_4/audio/sfx/MG_maze_pickup.ogg') self.tick_slowSfx = loader.loadSfx('phase_3.5/audio/sfx/tick_counter.ogg') self.easterEggSfx = loader.loadSfx('phase_4/audio/sfx/avatar_emotion_very_sad.ogg') self.pointsSeq = Sequence(Func(self.amt_label.show), Wait(0.25)) self.seqLevel = 0 self.fakeNumber = 0 self.points = points return
def generate(self, gender, head, headtype, color, doId, name, valueLabel = 1): gui = loader.loadModel('phase_3/models/gui/pick_a_toon_gui.bam') bg = gui.find('**/av-chooser_Square_UP') container = DirectFrame(relief=None, scale=0.3, parent=base.a2dTopLeft) container['image'] = bg container['image_color'] = self.frameColors[len(self.frameList)] container.setBin('gui-popup', 60) container.setPos(self.framePositions[len(self.frameList)]) headframe = container.attachNewNode('head') headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24) toon = ToonHead(None) toon.generateHead(gender, head, headtype) r, g, b = color color = (r, g, b, 1.0) toon.setHeadColor(color) toon.setDepthWrite(1) toon.setDepthTest(1) toon.reparentTo(headframe) nameLbl = DirectLabel(text=name, text_wordwrap=7.0, parent=container, text_scale=0.13, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0, 0, 0.25)) if valueLabel: someValueToBroadcast = DirectLabel(text='0', parent=container, text_scale=0.15, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0.26, 0, -0.28)) self.frameList.append(container) if valueLabel: self.doId2Frame[doId] = tuple((container, headframe, toon, nameLbl, someValueToBroadcast)) else: self.doId2Frame[doId] = tuple((container, headframe, toon, nameLbl)) return
def createGui(self): base.cr.renderFrame() self.m = loader.loadFont("phase_3/models/fonts/MickeyFont.bam") self.bg = loader.loadModel( "phase_3/models/gui/tt_m_gui_pat_mainGui.bam") self.qtbtn = loader.loadModel("phase_3/models/gui/quit_button.bam") self.trash_gui = loader.loadModel( "phase_3/models/gui/trashcan_gui.bam") self.bg_img = OnscreenImage( image=self.bg.find('**/tt_t_gui_pat_background')) self.setTitle("Pick A Toon To Play") base.setBackgroundColor(self.BgColor) self.btn1 = DirectButton( geom=self.bg.find('**/tt_t_gui_pat_squareGreen'), relief=None, pos=(0.012, 0, 0.306), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn2 = DirectButton( geom=self.bg.find('**/tt_t_gui_pat_squarePink'), relief=None, pos=(0.01, 0, -0.515), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn3 = DirectButton( geom=self.bg.find('**/tt_t_gui_pat_squareRed'), relief=None, pos=(-0.84, 0, 0.36), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn4 = DirectButton( geom=self.bg.find('**/tt_t_gui_pat_squareYellow'), relief=None, pos=(0.865, 0, -0.45), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn5 = DirectButton( geom=self.bg.find('**/tt_t_gui_pat_squareBlue'), relief=None, pos=(-0.87, 0, -0.44), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.btn6 = DirectButton( geom=self.bg.find('**/tt_t_gui_pat_squarePurple'), relief=None, pos=(0.873, 0, 0.335), text_wordwrap=6, text_fg=(1, 1, 1, 1)) self.quit_btn = DirectButton(geom=(self.qtbtn.find('**/QuitBtn_RLVR'), self.qtbtn.find('**/QuitBtn_RLVR'), self.qtbtn.find('**/QuitBtn_RLVR')), relief=None, text="Quit", text_font=self.m, text_scale=0.105, text_pos=(0, -0.035), pos=(1.05, 0, -0.9), text_fg=(1, 0.9, 0.1, 1), geom1_scale=(1.02, 1, 1), geom2_scale=(1.02, 1, 1), command=self.quitGame) self.btnList = [] self.btnList.append(self.btn1) self.btnList.append(self.btn2) self.btnList.append(self.btn3) self.btnList.append(self.btn4) self.btnList.append(self.btn5) self.btnList.append(self.btn6) self.headList = [] #datafiler = open("toons/data.txt", "r") #if datafiler.read() == "-": # for btn in self.btnList: # btn['state'] = DGG.DISABLED # self.quit_btn['state'] = DGG.DISABLED # self.tutorial.askTutorial() # datafilew = open("toons/data.txt", "w") # datafilew.write("+") # datafilew.flush() # datafilew.close() #datafiler.close() for slot in range(6): if self.avChooser.hasToonInSlot(slot): notify.info("found existing Toon in slot %s" % (str(slot))) frame = DirectFrame(relief=None, parent=self.btnList[slot], pos=(0, 0, -0.1)) headframe = hidden.attachNewNode('head') headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24) headframe.reparentTo(self.btnList[slot].stateNodePath[0], 20) headframe.instanceTo(self.btnList[slot].stateNodePath[1], 20) headframe.instanceTo(self.btnList[slot].stateNodePath[2], 20) toon = ToonHead(base.cr) self.headList.append(toon) gender, animal, head, headcolor = self.avChooser.getHeadInfo( slot) toon.generateHead(gender, animal, head, 1) toon.getGeomNode().setDepthWrite(1) toon.getGeomNode().setDepthTest(1) toon.startBlink() toon.startLookAround() toon.reparentTo(headframe) toon.setHeadColor(headcolor) toon.flattenLight() name_lbl = DirectLabel(text=self.avChooser.getNameInSlot(slot), text_scale=0.08, text_fg=(1, 1, 1, 1), text_wordwrap=7, relief=None, text_shadow=(0, 0, 0, 1)) name_lbl.reparentTo(self.btnList[slot].stateNodePath[0], 20) name_lbl.instanceTo(self.btnList[slot].stateNodePath[1], 20) name_lbl.instanceTo(self.btnList[slot].stateNodePath[2], 20) name_lbl.setPos(self.name_pos[slot]) name_lbl.setHpr(self.name_hpr[slot]) self.btnList[slot]['text'] = ("", "Play This Toon", "Play This Toon", "") self.btnList[slot]['text_scale'] = 0.1 self.btnList[slot]['text_pos'] = (0, 0) self.btnList[slot]['text_fg'] = (1, 0.9, 0, 1) self.btnList[slot]['text_wordwrap'] = 6 self.btnList[slot]['text_font'] = self.m self.btnList[slot]['command'] = self.fadeMenu self.btnList[slot]['extraArgs'] = ["playGame", slot] delBtn = DirectButton( text=("", "Delete", "Delete", ""), text_scale=0.15, scale=0.5, text_pos=(0, -0.1), text_fg=(1, 1, 1, 1), relief=None, geom=(self.trash_gui.find('**/TrashCan_CLSD'), self.trash_gui.find('**/TrashCan_OPEN'), self.trash_gui.find('**/TrashCan_RLVR')), pos=self.trash_pos[slot], command=self.deleteToon, extraArgs=[ self.avChooser.getAvChoiceBySlot(slot).getAvId() ], text_shadow=(0, 0, 0, 1)) delBtn.reparentTo(self.btnList[slot].stateNodePath[0], 20) delBtn.instanceTo(self.btnList[slot].stateNodePath[1], 20) delBtn.instanceTo(self.btnList[slot].stateNodePath[2], 20) else: self.btnList[slot]['text'] = "Make A Toon" self.btnList[slot]['text_font'] = self.m self.btnList[slot]['text0_scale'] = 0.1 self.btnList[slot]['text1_scale'] = 0.12 self.btnList[slot]['text2_scale'] = 0.12 self.btnList[slot]['text3_scale'] = 0.1 self.btnList[slot]['text0_fg'] = (0, 1, 0.8, 0.5) self.btnList[slot]['text1_fg'] = (0, 1, 0.8, 1) self.btnList[slot]['text2_fg'] = (0.3, 1, 0.9, 1) self.btnList[slot]['text3_fg'] = (0, 1, 0.8, 0.5) self.btnList[slot]['text_font'] = self.m self.btnList[slot]['command'] = self.fadeMenu self.btnList[slot]['extraArgs'] = ["mat", slot] self.btnList[slot]['text_wordwrap'] = 6