def enterSysMsgSection(self): geom = CIGlobals.getDefaultBtnGeom() self.infoLbl = OnscreenText( text="Inform all online players about something.", pos=(0, 0.45)) self.msgEntry = DirectEntry( initialText="System Message...", scale=0.055, width=15, numLines=4, command=self.sendSystemMessageCommand, focusInCommand=base.localAvatar.chatInput.disableKeyboardShortcuts, focusOutCommand=base.localAvatar.chatInput.enableKeyboardShortcuts, pos=(-0.4, 0, 0)) self.sendBtn = DirectButton( geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Send", pos=(0, 0, -0.35), text_pos=(0, -0.01), command=self.sendSystemMessageCommand, ) self.cancelBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Cancel", pos=(-0.45, 0.15, -0.55), text_pos=(0, -0.01), command=self.fsm.request, extraArgs=['basePage'])
def enterKickSection(self): geom = CIGlobals.getDefaultBtnGeom() self.infoLbl = OnscreenText(text="Kick or Ban?", pos=(0, 0.45)) self.kickBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Kick", pos=(0, 0, 0.1), text_pos=(0, -0.01), command=self.book.finishedResume, extraArgs=[KickBanDialog, [0]]) self.banBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Ban", pos=(0, 0, 0.0), text_pos=(0, -0.01), command=self.book.finishedResume, extraArgs=[KickBanDialog, [1]]) self.cancelBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Cancel", pos=(-0.45, 0.15, -0.45), text_pos=(0, -0.01), command=self.fsm.request, extraArgs=['basePage'])
def makeSelectionGUI(self): font = CIGlobals.getMickeyFont() box = loader.loadModel('phase_3/models/gui/dialog_box_gui.bam') imp = CIGlobals.getToonFont() geom = CIGlobals.getDefaultBtnGeom() self.container = DirectFrame() self.bg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(1.9, 1.4, 1.4), parent=self.container) self.title = OnscreenText(text="Join a Team", pos=(0, 0.5, 0), font=font, scale=(0.12), parent=self.container, fg=(1, 0.9, 0.3, 1)) self.btnFrame = DirectFrame(parent=self.container, pos=(0.14, 0, 0)) self.team1BtnFrame = DirectFrame(parent=self.btnFrame, pos=(-0.5, 0, 0)) self.team2BtnFrame = DirectFrame(parent=self.btnFrame, pos=(0.22, 0, 0)) self.team1Btn = DirectButton(parent=self.team1BtnFrame, relief=None, pressEffect=0, image=self.team1BtnImg, image_scale=(0.9, 1, 1), scale=0.4, command=self.choseTeam, extraArgs=[TEAM1]) self.team1Plyrs_Lbl = OnscreenText(parent=self.team1BtnFrame, text=str(self.playersByTeam[TEAM1]), pos=(0, -0.46, 0), font=imp) self.team2Btn = DirectButton(parent=self.team2BtnFrame, relief=None, pressEffect=0, image=self.team2BtnImg, image_scale=(0.9, 1, 1), scale=0.4, command=self.choseTeam, extraArgs=[TEAM2]) self.team2Plyrs_Lbl = OnscreenText(parent=self.team2BtnFrame, text=str(self.playersByTeam[TEAM2]), pos=(0, -0.46, 0), font=imp) self.teamFull_Lbl = OnscreenText(parent=self.container, text="", pos=(0, -0.6, 0), font=imp)
def enterEditGags(self): self.initialLoadout = [] for instance in base.localAvatar.backpack.loadout: self.initialLoadout.append(instance.getID()) self.newLoadout = list(self.initialLoadout) self.editButton['text'] = 'Stop Editing' self.editButton['command'] = self.fsm.request self.editButton['extraArgs'] = ['idle'] self.switchButton = DirectButton(relief=None, image=CIGlobals.getDefaultBtnGeom(), text='Add Gags', text_scale=0.045, text_pos=(0, -0.01), pos=(0.5, 0, -0.4)) self.editFSM.request('add')
def createTurretButton(self): self.makeTurretBtn = DirectButton( relief = None, geom = CIGlobals.getDefaultBtnGeom(), text = 'Turret', text_scale = 0.055, command = self.handleMakeTurretBtn, pos = (-0.47, 0, 0.1), geom_scale = (0.5, 1.0, 1.0), text_pos = (0, -0.01), parent = base.a2dBottomRight ) if base.localAvatar.getPUInventory()[0]: self.setGag(base.localAvatar.getPUInventory()[1])
def createGUI(self): for i in xrange(len(GagGlobals.TrackNameById)): trackName = GagGlobals.TrackNameById[i] self.__makeTrack(trackName) for j in xrange(len( GagGlobals.TrackGagNamesByTrackName[trackName])): gagName = GagGlobals.TrackGagNamesByTrackName[trackName][j] gagId = GagGlobals.gagIdByName[gagName] if base.localAvatar.getBackpack().hasGag(gagId): self.__makeGagButton(gagName, trackName) self.editButton = DirectButton(relief=None, image=CIGlobals.getDefaultBtnGeom(), text='Edit Loadout', text_scale=0.045, text_pos=(0, -0.01), pos=(-0.5, 0, -0.4)) self.fsm.request('idle')
def enterChooseGun(self): font = CIGlobals.getToonFont() box = DGG.getDefaultDialogGeom() geom = CIGlobals.getDefaultBtnGeom() self.container = DirectFrame() self.bg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(1.9, 1.4, 1.4), parent=self.container) self.title = OnscreenText(text="Choose a Gun", pos=(0, 0.5, 0), font=font, scale=(0.12), parent=self.container) self.pistolBtn = DirectButton(geom=geom, text="Pistol", relief=None, text_scale=0.055, text_pos=(0, -0.01), command=self.__gunChoice, extraArgs=["pistol"], pos=(0, 0, 0.35), parent=self.container) self.shotgunBtn = DirectButton(geom=geom, text="Shotgun", relief=None, text_scale=0.055, text_pos=(0, -0.01), command=self.__gunChoice, extraArgs=["shotgun"], pos=(0, 0, 0.25), parent=self.container) self.sniperBtn = DirectButton(geom=geom, text="Sniper", relief=None, text_scale=0.055, text_pos=(0, -0.01), command=self.__gunChoice, extraArgs=["sniper"], pos=(0, 0, 0.15), parent=self.container)
def makePickableQuests(self, questList): self.doCameraNPCInteraction(True) quests = [] for questId in questList: quest = Quest(questId, base.localAvatar.questManager) quest.setupCurrentObjectiveFromData(-1, 0, None) quests.append(quest) positions = [(0, 0, 0.65), (0, 0, 0.1), (0, 0, -0.45)] self.questFrame = DirectFrame(relief=None, pos=(-0.8, 0, 0), geom=DGG.getDefaultDialogGeom(), geom_color=Vec4(0.8, 0.6, 0.4, 1), geom_scale=(1.85, 1, 0.9), geom_hpr=(0, 0, -90)) self.cancelBtn = DirectButton(text="Cancel", geom=CIGlobals.getDefaultBtnGeom(), geom_scale=(0.6, 0.75, 0.75), relief=None, parent=self.questFrame, pos=(0.2, 0, -0.8), text_scale=0.045, text_pos=(0, -0.015), scale=1.1, command=self.__cancelQuestPicker, extraArgs=[False]) self.timer = Timer() self.timer.load() self.timer.setScale(0.3) self.timer.reparentTo(self.questFrame) self.timer.setPos(-0.1, 0, -0.8) self.timer.setInitialTime(20) self.timer.setZeroCommand(self.__cancelQuestPicker) self.timer.startTiming() self.questPosters = [] self.questBtns = [] for i in xrange(len(quests)): poster = None quest = quests[i] poster = QuestGlobals.generatePoster(quest, parent=aspect2d) poster.setScale(0.85) poster.setPos(0, 0, 0) poster.progressBar.hide() self.questPosters.append(poster) # Let's setup the choose button. btn = DirectButton(geom=CIGlobals.getDefaultBtnGeom(), parent=poster, pos=(0.35, 0, 0.215), text='Choose', text_scale=0.08, text_pos=(0, -0.025), relief=None, command=self.d_pickedQuest, extraArgs=[quests[i]]) btn.setScale(0.4) btn.setBin('gui-popup', 60) btn.initialiseoptions(DirectButton) poster.reparentTo(self.questFrame.stateNodePath[0], 20) poster.setPos(positions[i]) poster.show() self.questBtns.append(btn)
def load(self, newToonSlot=None): self.isNewToon = newToonSlot is not None self.newToonSlot = newToonSlot base.transitions.noTransitions() base.cr.renderFrame() base.camLens.setMinFov(CIGlobals.DefaultCameraFov / (4. / 3.)) self.__setupStageToon() self.title = DirectLabel(text=self.TITLE, text_font=CIGlobals.getMickeyFont(), text_fg=(1, 0.9, 0.1, 1), relief=None, text_scale=0.13, pos=(0, 0, 0.82)) self.charNameLabel = OnscreenText(text="", font=CIGlobals.getMickeyFont(), pos=(-0.25, 0.5, 0), fg=(1, 0.9, 0.1, 1.0)) self.charNameLabel.hide() self.frame = DirectFrame() self.frame['image'] = DGG.getDefaultDialogGeom() self.frame['image_color'] = CIGlobals.DialogColor self.frame['image_scale'] = (-0.9, -0.9, 0.8) self.frame['image_pos'] = (0.82, 0, -0.125) self.playOrCreateButton = DirectButton( text="", pos=(0.8125, 0, -0.35), command=self.__action, geom=CIGlobals.getDefaultBtnGeom(), text_scale=0.06, relief=None, text_pos=(0, -0.01)) self.playOrCreateButton.hide() self.deleteButton = DirectButton(text="Delete", pos=(0.8125, 0, -0.45), command=self.__action, extraArgs=['delete'], geom=CIGlobals.getDefaultBtnGeom(), text_scale=0.06, relief=None, text_pos=(0, -0.01)) self.deleteButton.hide() self.quitButton = DirectButton(text="Quit", pos=(-1.10, 0, -0.925), command=self.__action, extraArgs=['quit'], text_scale=0.06, geom=CIGlobals.getDefaultBtnGeom(), relief=None, text_pos=(0, -0.01)) for slot in range(6): if self.avChooser.hasToonInSlot(slot): choice = self.avChooser.getAvChoiceBySlot(slot) text = choice.name else: text = self.NO_TOON btn = CIGlobals.makeDefaultScrolledListBtn( text=text, text_scale=0.06, command=self.__handleCharButton, extraArgs=[slot]) btn.setPythonTag('slot', slot) self.charButtons.append(btn) btn['state'] = DGG.NORMAL self.charList = CIGlobals.makeDefaultScrolledList( pos=(0.75, 0, -0.225), listZorigin=-0.43, listFrameSizeZ=0.51, arrowButtonScale=0.0, items=self.charButtons, parent=self.frame) if self.isNewToon: self.__handleCharButton(self.newToonSlot) self.disableAllCharButtons()
def enterPanel(self): accessLevel = self.avatarInfo[8] text_color = AdminCommands.Roles.get( accessLevel ).token.color if accessLevel > AdminCommands.NoAccess else (0, 0, 0, 1) self.nameText = OnscreenText(text=self.avatarInfo[1], parent=self, pos=(0, 0.2), scale=0.035, wordwrap=8, fg=text_color) self.nameText.setBin('gui-popup', 60) dna = ToonDNA.ToonDNA() dna.setDNAStrand(self.avatarInfo[2]) self.head = ToonGlobals.generateGuiHead(dna) self.head.reparentTo(self) self.head.setScale(self.animal2HeadData[dna.animal][0]) self.head.setZ(self.animal2HeadData[dna.animal][1]) self.laffMeter = LaffOMeter() r, g, b, _ = dna.headcolor self.laffMeter.generate(r, g, b, dna.animal, self.avatarInfo[3], self.avatarInfo[4]) self.laffMeter.reparentTo(self) self.laffMeter.setBin('gui-popup', 60) self.laffMeter.setScale(0.045) self.laffMeter.setPos(0, 0, -0.1) self.friendButton = DirectButton( geom=CIGlobals.getDefaultBtnGeom(), text="Add Friend", scale=0.58, relief=None, text_scale=0.058, geom_scale=(1.25, 0, 0.9), text_pos=(0, -0.0125), parent=self, pos=(0, 0, -0.12), command=self.doAction, extraArgs=['waitOnAvatarFriendListResponse']) self.friendButton.setPos(0, 0.0, -0.225) self.maybeUpdateFriendButton() self.teleportButton = DirectButton( geom=CIGlobals.getDefaultBtnGeom(), text="Teleport", scale=0.58, relief=None, text_scale=0.058, geom_scale=(1.25, 0, 0.9), text_pos=(0, -0.0125), parent=self, pos=(0, 0, -0.12), command=self.doAction, extraArgs=['waitOnAvatarTeleportResponse']) self.teleportButton.setPos(0, 0, -0.275) self.whisperButton = DirectButton( geom=CIGlobals.getDefaultBtnGeom(), text="Whisper", scale=0.58, relief=None, text_scale=0.058, geom_scale=(1.25, 0, 0.9), text_pos=(0, -0.0125), parent=self, pos=(0, 0, -0.12), command=base.localAvatar.handleClickedWhisper, extraArgs=[self.avatarInfo[1], self.avatarInfo[0], 1]) self.whisperButton.setPos(0, 0, -0.325) self.exitButton = DirectButton(geom=CIGlobals.getCancelBtnGeom(), parent=self, relief=None, scale=0.6, pos=(0, 0.0, -0.39), command=self.exitClicked) gui = loader.loadModel("phase_3.5/models/gui/friendslist_gui.bam") self.moreDetailsBtn = DirectButton( geom=(gui.find('**/Horiz_Arrow_UP'), gui.find('**/Horiz_Arrow_DN'), gui.find('**/Horiz_Arrow_Rllvr'), gui.find('**/Horiz_Arrow_UP')), relief=None, parent=self, pos=(-0.127, 0.0, -0.39), geom_hpr=(180, 0, 0), command=self.makeMoreDetailsPanel, scale=0.77, text=('', 'More Details', 'More Details', ''), text_scale=0.045, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(-0.08, -0.01), text_align=TextNode.ARight)
def enterVoteGameMode(self): render.hide() font = CIGlobals.getMickeyFont() imp = CIGlobals.getToonFont() box = DGG.getDefaultDialogGeom() geom = CIGlobals.getDefaultBtnGeom() self.container = DirectFrame() self.bg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(2.4, 1.4, 1.4), parent=self.container) self.title = OnscreenText(text="Vote on Game Mode", pos=(0, 0.5, 0), font=font, scale=(0.12), parent=self.container, fg=(1, 0.9, 0.3, 1)) self.btnFrame = DirectFrame(parent=self.container, pos=(0.14, 0, 0)) self.casualFrame = DirectFrame(parent=self.btnFrame, pos=(-0.80, 0, 0)) self.ctfFrame = DirectFrame(parent=self.btnFrame, pos=(-0.125, 0, 0)) self.kothFrame = DirectFrame(parent=self.btnFrame, pos=(0.55, 0, 0)) self.casual = DirectButton(parent=self.casualFrame, relief=None, pressEffect=0, image=('phase_4/maps/casual_neutral.png', 'phase_4/maps/casual_hover.png', 'phase_4/maps/casual_hover.png'), image_scale=(0.9, 1, 1), scale=0.4, command=self.__pickedGameMode, extraArgs=[GGG.GameModes.CASUAL]) self.casual_votesLbl = OnscreenText(parent=self.casualFrame, text="0", pos=(0, -0.46, 0), font=imp) self.ctf = DirectButton(parent=self.ctfFrame, relief=None, pressEffect=0, image=('phase_4/maps/ctf_neutral.png', 'phase_4/maps/ctf_hover.png', 'phase_4/maps/ctf_hover.png'), image_scale=(0.9, 1, 1), scale=0.4, command=self.__pickedGameMode, extraArgs=[GGG.GameModes.CTF]) self.ctf_votesLbl = OnscreenText(parent=self.ctfFrame, text="0", pos=(0, -0.46, 0), font=imp) self.koth = DirectButton(parent=self.kothFrame, relief=None, pressEffect=0, image=('phase_4/maps/koth_neutral.png', 'phase_4/maps/koth_hover.png', 'phase_4/maps/koth_hover.png'), image_scale=(0.9, 1, 1), scale=0.4, command=self.__pickedGameMode, extraArgs=[GGG.GameModes.KOTH]) self.koth_votesLbl = OnscreenText(parent=self.kothFrame, text="0", pos=(0, -0.46, 0), font=imp) self.outcomeLbl = OnscreenText(parent=self.container, text="", pos=(0, -0.6, 0), font=imp, scale=0.1)
def load(self): BookPage.load(self) # Let's load up the clouds. for pos, scale, hpr in self.cloudPos: cloud = loader.loadModel('phase_3.5/models/gui/cloud.bam') cloud.reparentTo(self) cloud.setPos(pos) cloud.setScale(scale) cloud.setHpr(hpr) self.clouds.append(cloud) for pos, scale, hpr, hood in self.hoodClouds: if not base.localAvatar.hasDiscoveredHood( ZoneUtil.getZoneId(hood)): cloud = loader.loadModel('phase_3.5/models/gui/cloud.bam') cloud.reparentTo(self) cloud.setPos(pos) cloud.setScale(scale) cloud.setHpr(hpr) self.clouds.append(cloud) for pos, name in self.labelData: if base.localAvatar.hasDiscoveredHood(ZoneUtil.getZoneId(name)): text = name if base.localAvatar.hasTeleportAccess( ZoneUtil.getZoneId(name)): text = 'Go To\n' + text label = DirectButton( parent=self, relief=None, pos=pos, pad=(0.2, 0.16), text=('', text, text, ''), text_bg=Vec4(1, 1, 1, 0.4), text_scale=0.055, text_wordwrap=8, rolloverSound=CIGlobals.getRolloverSound(), clickSound=None, pressEffect=0, sortOrder=1, text_font=CIGlobals.getToonFont()) if base.localAvatar.hasTeleportAccess( ZoneUtil.getZoneId(name)): label['command'] = self.book.finished label['extraArgs'] = [ZoneUtil.getZoneId(name)] label.resetFrameSize() self.labels.append(label) currHoodName = base.cr.playGame.hood.id currLocation = '' if base.localAvatar.zoneId == ZoneUtil.MinigameAreaId or base.localAvatar.getBattleZone( ) is not None: currLocation = '' elif ZoneUtil.getWhereName(base.localAvatar.zoneId) == 'playground': currLocation = 'Playground' elif ZoneUtil.getWhereName( base.localAvatar.zoneId) in ['street', 'interior']: currLocation = ZoneUtil.BranchZone2StreetName[ ZoneUtil.getBranchZone(base.localAvatar.zoneId)] self.infoLabel = DirectLabel(relief=None, text='You are in: {0}\n{1}'.format( currHoodName, currLocation), scale=0.06, pos=(-0.4, 0, -0.74), parent=self, text_align=TextNode.ACenter) if currHoodName in [ZoneUtil.MinigameArea, ZoneUtil.BattleTTC]: currHoodName = base.cr.playGame.lastHood btpText = 'Back to Playground' btpEA = [ZoneUtil.getZoneId(currHoodName)] self.BTPButton = DirectButton(relief=None, text=btpText, geom=CIGlobals.getDefaultBtnGeom(), text_pos=(0, -0.018), geom_scale=(1.3, 1.11, 1.11), text_scale=0.06, parent=self, text_font=CIGlobals.getToonFont(), pos=(0.25, 0, -0.75), command=self.book.finished, extraArgs=btpEA, scale=0.7) icons = loader.loadModel('phase_3.5/models/gui/sos_textures.bam') self.icon = icons.find('**/teleportIcon') icons.detachNode()
def enterBasePage(self): geom = CIGlobals.getDefaultBtnGeom() self.ghostBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle Ghost", pos=(-0.45, 0.15, 0.5), text_pos=(0, -0.01), command=TOGGLE_GHOST) self.bgBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle Background", pos=(-0.45, 0.15, 0.40), text_pos=(0, -0.01), command=self.toggleBackground) self.idBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle Player Ids", pos=(-0.45, 0.15, 0.3), text_pos=(0, -0.01), command=TOGGLE_PLAYER_IDS) self.kickBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Kick/Ban Player", pos=(0.45, 0.15, 0.5), text_pos=(0, -0.01), command=self.openKickPage) self.systemMsgBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="System Message", pos=(-0.45, 0.15, 0.1), text_pos=(0, -0.01), command=self.openSysMsgPage) self.oobeBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle OOBE", pos=(-0.45, 0.15, 0.2), text_pos=(0, -0.01), command=base.oobe) self.directBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Start DIRECT", pos=(-0.45, 0.15, 0.1), text_pos=(0, -0.01), command=self.doStartDirect) self.pstatsBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle PStats", pos=(-0.45, 0.15, 0.0), text_pos=(0, -0.01), command=self.togglePStats) self.pingBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle Ping", pos=(-0.45, 0.15, -0.1), text_pos=(0, -0.01), command=base.cr.togglePing) self.tokenBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Modify Access Level", pos=(0.45, 0.15, 0.4), text_pos=(0, -0.01), command=self.book.finishedResume, extraArgs=[AdminTokenDialog, []]) self.worldBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Give World Access", pos=(0.45, 0.15, 0.3), text_pos=(0, -0.01), command=self.book.finishedResume, extraArgs=[WorldAccessDialog, []]) self.allGagsBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Restock All Gags", pos=(0.45, 0.15, 0.2), text_pos=(0, -0.01), command=SEND_REQ_UNLOCK_GAGS) self.allLaffBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Refill Laff", pos=(0.45, 0.15, 0.1), text_pos=(0, -0.01), command=SEND_REQ_REFILL_LAFF) self.physDbgBtn = DirectButton(geom=geom, text_scale=0.039, relief=None, scale=1.0, text="Toggle Physics Debug", pos=(0.45, 0.15, 0.0), text_pos=(0, -0.01), command=self.togglePhysDbg) self.analyzeBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Analyze Scene", pos=(0.45, 0.15, -0.1), text_pos=(0, -0.01), command=self.doAnalyzeScene) self.listBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="List Scene", pos=(0.45, 0.15, -0.2), text_pos=(0, -0.01), command=render.ls) self.noClipBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text="Toggle No Clip", pos=(0.45, 0.15, -0.3), text_pos=(0, -0.01), command=self.toggleNoClip) base.cr.playGame.getPlace().maybeUpdateAdminPage() del geom