def loadGUI(self):
     self.gui = loader.loadModel('phase_13/models/parties/trampolineGUI')
     self.gui.reparentTo(base.a2dTopLeft)
     self.gui.setPos(0.115, 0, -1)
     self.gui.hide()
     self.toonIndicator = self.gui.find('**/trampolineGUI_MovingBar')
     jumpLineLocator = self.gui.find('**/jumpLine_locator')
     guiBean = self.gui.find('**/trampolineGUI_GreenJellyBean')
     self.gui.find('**/trampolineGUI_GreenJellyBean').stash()
     self.guiBeans = [ guiBean.instanceUnderNode(jumpLineLocator, self.uniqueName('guiBean%d' % i)) for i in xrange(self.numJellyBeans) ]
     self.guiBeans[-1].setScale(1.5)
     heightTextNode = TextNode(self.uniqueName('TrampolineActivity.heightTextNode'))
     heightTextNode.setFont(ToontownGlobals.getSignFont())
     heightTextNode.setAlign(TextNode.ALeft)
     heightTextNode.setText('0.0')
     heightTextNode.setShadow(0.05, 0.05)
     heightTextNode.setShadowColor(0.0, 0.0, 0.0, 1.0)
     heightTextNode.setTextColor(1.0, 1.0, 1.0, 1.0)
     self.heightText = jumpLineLocator.attachNewNode(heightTextNode)
     self.heightText.setX(0.15)
     self.heightText.setScale(0.1)
     self.heightText.setAlphaScale(0.0)
     self.quitEarlyButtonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     quitEarlyUp = self.quitEarlyButtonModels.find('**//InventoryButtonUp')
     quitEarlyDown = self.quitEarlyButtonModels.find('**/InventoryButtonDown')
     quitEarlyRollover = self.quitEarlyButtonModels.find('**/InventoryButtonRollover')
     self.quitEarlyButton = DirectButton(parent=base.a2dTopRight, relief=None, text=TTLocalizer.PartyTrampolineQuitEarlyButton, text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23), text_scale=0.7, image=(quitEarlyUp, quitEarlyDown, quitEarlyRollover), image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(-0.183, 0, -0.4), scale=0.09, command=self.leaveTrampoline)
     self.quitEarlyButton.stash()
     self.flashText = OnscreenText(text='', pos=(0.0, -0.45), scale=0.2, fg=(1.0, 1.0, 0.65, 1.0), align=TextNode.ACenter, font=ToontownGlobals.getSignFont(), mayChange=True)
     self.timer = PartyUtils.getNewToontownTimer()
     self.timer.posInTopRightCorner()
     return
Exemple #2
0
 def loadGUI(self):
     self.gui = loader.loadModel('phase_13/models/parties/trampolineGUI')
     self.gui.reparentTo(base.a2dTopLeft)
     self.gui.setPos(0.115, 0, -1)
     self.gui.hide()
     self.toonIndicator = self.gui.find('**/trampolineGUI_MovingBar')
     jumpLineLocator = self.gui.find('**/jumpLine_locator')
     guiBean = self.gui.find('**/trampolineGUI_GreenJellyBean')
     self.gui.find('**/trampolineGUI_GreenJellyBean').stash()
     self.guiBeans = [ guiBean.instanceUnderNode(jumpLineLocator, self.uniqueName('guiBean%d' % i)) for i in xrange(self.numJellyBeans) ]
     self.guiBeans[-1].setScale(1.5)
     heightTextNode = TextNode(self.uniqueName('TrampolineActivity.heightTextNode'))
     heightTextNode.setFont(ToontownGlobals.getSignFont())
     heightTextNode.setAlign(TextNode.ALeft)
     heightTextNode.setText('0.0')
     heightTextNode.setShadow(0.05, 0.05)
     heightTextNode.setShadowColor(0.0, 0.0, 0.0, 1.0)
     heightTextNode.setTextColor(1.0, 1.0, 1.0, 1.0)
     self.heightText = jumpLineLocator.attachNewNode(heightTextNode)
     self.heightText.setX(0.15)
     self.heightText.setScale(0.1)
     self.heightText.setAlphaScale(0.0)
     self.quitEarlyButtonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     quitEarlyUp = self.quitEarlyButtonModels.find('**//InventoryButtonUp')
     quitEarlyDown = self.quitEarlyButtonModels.find('**/InventoryButtonDown')
     quitEarlyRollover = self.quitEarlyButtonModels.find('**/InventoryButtonRollover')
     self.quitEarlyButton = DirectButton(parent=base.a2dTopRight, relief=None, text=TTLocalizer.PartyTrampolineQuitEarlyButton, text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23), text_scale=0.7, image=(quitEarlyUp, quitEarlyDown, quitEarlyRollover), image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(-0.183, 0, -0.4), scale=0.09, command=self.leaveTrampoline)
     self.quitEarlyButton.stash()
     self.flashText = OnscreenText(text='', pos=(0.0, -0.45), scale=0.2, fg=(1.0, 1.0, 0.65, 1.0), align=TextNode.ACenter, font=ToontownGlobals.getSignFont(), mayChange=True)
     self.timer = PartyUtils.getNewToontownTimer()
     self.timer.posInTopRightCorner()
     return
    def load(self):
        if self.__loaded:
            return
        self.__timerPad = PartyUtils.getNewToontownTimer()
        guiModel = 'phase_4/models/gui/cannon_game_gui'
        guiNode = loader.loadModel(guiModel)
        self.__aimPad = DirectFrame(image=guiNode.find('**/CannonFire_PAD'), relief=None, pos=(0.7, 0, -0.553333), scale=0.8)
        guiNode.removeNode()
        self.fireButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Fire_Btn_UP'), (guiModel, '**/Fire_Btn_DN'), (guiModel, '**/Fire_Btn_RLVR')), relief=None, pos=(0.0115741, 0, 0.00505051), scale=1.0, command=self.__firePressed)
        self.upButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(0.0115741, 0, 0.221717))
        self.downButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(0.0136112, 0, -0.210101), image_hpr=(0, 0, 180))
        self.leftButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(-0.199352, 0, -0.000505269), image_hpr=(0, 0, -90))
        self.rightButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(0.219167, 0, -0.00101024), image_hpr=(0, 0, 90))
        self.__aimPad.setColor(1, 1, 1, 0.9)

        def bindButton(button, upHandler, downHandler):
            button.bind(DGG.B1PRESS, lambda x, handler = upHandler: handler())
            button.bind(DGG.B1RELEASE, lambda x, handler = downHandler: handler())

        bindButton(self.upButton, self.__upPressed, self.__upReleased)
        bindButton(self.downButton, self.__downPressed, self.__downReleased)
        bindButton(self.leftButton, self.__leftPressed, self.__leftReleased)
        bindButton(self.rightButton, self.__rightPressed, self.__rightReleased)
        self.__loaded = True
        return
    def load(self):
        if self.__loaded:
            return
        self.__timerPad = PartyUtils.getNewToontownTimer()
        guiModel = 'phase_4/models/gui/cannon_game_gui'
        guiNode = loader.loadModel(guiModel)
        self.__aimPad = DirectFrame(image=guiNode.find('**/CannonFire_PAD'), relief=None, pos=(0.7, 0, -0.553333), scale=0.8)
        guiNode.removeNode()
        self.fireButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Fire_Btn_UP'), (guiModel, '**/Fire_Btn_DN'), (guiModel, '**/Fire_Btn_RLVR')), relief=None, pos=(0.0115741, 0, 0.00505051), scale=1.0, command=self.__firePressed)
        self.upButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(0.0115741, 0, 0.221717))
        self.downButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(0.0136112, 0, -0.210101), image_hpr=(0, 0, 180))
        self.leftButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(-0.199352, 0, -0.000505269), image_hpr=(0, 0, -90))
        self.rightButton = DirectButton(parent=self.__aimPad, image=((guiModel, '**/Cannon_Arrow_UP'), (guiModel, '**/Cannon_Arrow_DN'), (guiModel, '**/Cannon_Arrow_RLVR')), relief=None, pos=(0.219167, 0, -0.00101024), image_hpr=(0, 0, 90))
        self.__aimPad.setColor(1, 1, 1, 0.9)

        def bindButton(button, upHandler, downHandler):
            button.bind(DGG.B1PRESS, lambda x, handler = upHandler: handler())
            button.bind(DGG.B1RELEASE, lambda x, handler = downHandler: handler())

        bindButton(self.upButton, self.__upPressed, self.__upReleased)
        bindButton(self.downButton, self.__downPressed, self.__downReleased)
        bindButton(self.leftButton, self.__leftPressed, self.__leftReleased)
        bindButton(self.rightButton, self.__rightPressed, self.__rightReleased)
        self.__loaded = True
        return
Exemple #5
0
 def load(self):
     buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     upButton = buttonModels.find('**//InventoryButtonUp')
     downButton = buttonModels.find('**/InventoryButtonDown')
     rolloverButton = buttonModels.find('**/InventoryButtonRollover')
     self.exitButton = DirectButton(
         relief=None,
         text=TTLocalizer.PartyTeamActivityExitButton,
         text_fg=(1, 1, 0.65, 1),
         text_pos=(0, -0.15),
         text_scale=0.5,
         image=(upButton, downButton, rolloverButton),
         image_color=(1, 0, 0, 1),
         image_scale=(14.5, 1, 9),
         pos=(0, 0, 0.8),
         scale=0.15,
         command=self.handleExitButtonClick)
     self.exitButton.hide()
     if self.activity.toonsCanSwitchTeams():
         self.switchButton = DirectButton(
             relief=None,
             text=TTLocalizer.PartyTeamActivitySwitchTeamsButton,
             text_fg=(1, 1, 1, 1),
             text_pos=(0, 0.1),
             text_scale=0.5,
             image=(upButton, downButton, rolloverButton),
             image_color=(0, 1, 0, 1),
             image_scale=(15, 1, 15),
             pos=(0, 0, 0.5),
             scale=0.15,
             command=self.handleSwitchButtonClick)
         self.switchButton.hide()
     else:
         self.switchButton = None
     buttonModels.removeNode()
     self.countdownText = OnscreenText(
         text='',
         pos=(0.0, -0.2),
         scale=PartyGlobals.TeamActivityTextScale * 1.2,
         fg=(1.0, 1.0, 0.65, 1.0),
         align=TextNode.ACenter,
         font=ToontownGlobals.getSignFont(),
         mayChange=True)
     self.countdownText.hide()
     self.statusText = OnscreenText(
         text='',
         pos=(0.0, 0.0),
         scale=PartyGlobals.TeamActivityTextScale,
         fg=PartyGlobals.TeamActivityStatusColor,
         align=TextNode.ACenter,
         font=ToontownGlobals.getSignFont(),
         mayChange=True)
     self.statusText.hide()
     self.timer = PartyUtils.getNewToontownTimer()
     self.timer.hide()
     return
Exemple #6
0
    def loadGUI( self ):
        self.gui = loader.loadModel("phase_13/models/parties/trampolineGUI")
        self.gui.setX(-1.15)
        self.gui.reparentTo( self.screenPlaneElements )

        self.toonIndicator = self.gui.find( "**/trampolineGUI_MovingBar" )
        jumpLineLocator = self.gui.find( "**/jumpLine_locator" )
        guiBean = self.gui.find( "**/trampolineGUI_GreenJellyBean" )

        self.gui.find( "**/trampolineGUI_GreenJellyBean" ).stash()  # sadly, the white jelly bean is named GreenJellyBean

        self.guiBeans = [guiBean.instanceUnderNode( jumpLineLocator, self.uniqueName( "guiBean%d" % i ) ) for i in range( self.numJellyBeans )]
        self.guiBeans[-1].setScale( 1.5 )

        heightTextNode = TextNode( self.uniqueName( "TrampolineActivity.heightTextNode" ) )
        heightTextNode.setFont( ToontownGlobals.getSignFont() )
        heightTextNode.setAlign( TextNode.ALeft )
        heightTextNode.setText( "0.0" )
        heightTextNode.setShadow( 0.05, 0.05 )
        heightTextNode.setShadowColor( 0.0, 0.0, 0.0, 1.0 )
        heightTextNode.setTextColor( 1.0, 1.0, 1.0, 1.0 )
        self.heightText = jumpLineLocator.attachNewNode( heightTextNode )
        self.heightText.setX( 0.15 )
        self.heightText.setScale( 0.1 )
        self.heightText.setAlphaScale( 0.0 )

        self.quitEarlyButtonModels = loader.loadModel( "phase_3.5/models/gui/inventory_gui" )
        quitEarlyUp = self.quitEarlyButtonModels.find( "**//InventoryButtonUp" )
        quitEarlyDown = self.quitEarlyButtonModels.find( "**/InventoryButtonDown" )
        quitEarlyRollover = self.quitEarlyButtonModels.find( "**/InventoryButtonRollover" )
        self.quitEarlyButton = DirectButton(
            parent=self.screenPlaneElements,
            relief=None,
            text=TTLocalizer.PartyTrampolineQuitEarlyButton,
            text_fg=(1, 1, 0.65, 1),
            text_pos=(0, -0.23),
            text_scale=0.7,
            image=(quitEarlyUp, quitEarlyDown, quitEarlyRollover),
            image_color=(1, 0, 0, 1),
            image_scale=(20, 1, 11),
            pos=(1.15, 0, 0.6),
            scale=0.09,
            command=self.leaveTrampoline,
        )
        self.quitEarlyButton.stash()

        self.flashText = OnscreenText(text="",
                                      pos=(0.0, -0.45),
                                      scale=0.2,
                                      fg=(1.0, 1.0, 0.65, 1.0),
                                      align=TextNode.ACenter,
                                      font=ToontownGlobals.getSignFont(),
                                      mayChange=True,)

        self.timer = PartyUtils.getNewToontownTimer()
        self.timer.reparentTo(self.screenPlaneElements)
 def load(self):
     if self.isLoaded():
         return
     guiNode = loader.loadModel('phase_13/models/parties/jukeboxGUI')
     self._timerGui = PartyUtils.getNewToontownTimer()
     self._windowFrame = DirectFrame(image=guiNode.find('**/background'), relief=None, pos=(0, 0, 0), scale=0.7)
     self._songFrame = DirectFrame(image=guiNode.find('**/songTitle_background'), parent=self._windowFrame, relief=None)
     self._currentlyPlayingLabel = self.__createLabel(guiNode, 'currentlyPlaying', parent=self._windowFrame, text=TTLocalizer.JukeboxCurrentlyPlayingNothing, scale=TTLocalizer.JGcurrentlyPlayingLabel)
     self._songNameLabel = self.__createLabel(guiNode, 'songName', parent=self._windowFrame, text=TTLocalizer.JukeboxCurrentSongNothing, scale=TTLocalizer.JGsongNameLabel)
     self._queueList, self._queueLabel = self.__createLabeledScrolledList(guiNode, 'queue', label=TTLocalizer.JukeboxQueueLabel, parent=self._windowFrame)
     self._songsList, self._songsLabel = self.__createLabeledScrolledList(guiNode, 'songs', label=TTLocalizer.JukeboxSongsLabel, parent=self._windowFrame)
     pos = guiNode.find('**/addButton_text_locator').getPos()
     self._addSongButton = self.__createButton(guiNode, 'addSongButton', parent=self._windowFrame, command=self.__handleAddSongButtonClick, image3_color=Vec4(0.6, 0.6, 0.6, 0.6), text=TTLocalizer.JukeboxAddSong, text_align=TextNode.ACenter, text_pos=(pos[0], pos[2]), text_scale=TTLocalizer.JGaddSongButton)
     self._closeButton = self.__createButton(guiNode, 'can_cancelButton', parent=self._windowFrame, command=self.__handleCloseButtonClick)
     pos = guiNode.find('**/close_text_locator').getPos()
     self._closeButton = self.__createButton(guiNode, 'close', parent=self._windowFrame, command=self.__handleCloseButtonClick, text=TTLocalizer.JukeboxClose, text_align=TextNode.ACenter, text_pos=(pos[0], pos[2]), text_scale=0.08)
     self._moveToTopButton = self.__createButton(guiNode, 'moveToTop', command=self.__handleMoveToTopButtonClick)
     guiNode.removeNode()
     self._loaded = True
 def load(self):
     if self.isLoaded():
         return None
     
     guiNode = loader.loadModel('phase_13/models/parties/jukeboxGUI')
     self._timerGui = PartyUtils.getNewToontownTimer()
     self._windowFrame = DirectFrame(image = guiNode.find('**/background'), relief = None, pos = (0, 0, 0), scale = 0.69999999999999996)
     self._songFrame = DirectFrame(image = guiNode.find('**/songTitle_background'), parent = self._windowFrame, relief = None)
     self._currentlyPlayingLabel = self._JukeboxGui__createLabel(guiNode, 'currentlyPlaying', parent = self._windowFrame, text = TTLocalizer.JukeboxCurrentlyPlayingNothing, scale = TTLocalizer.JGcurrentlyPlayingLabel)
     self._songNameLabel = self._JukeboxGui__createLabel(guiNode, 'songName', parent = self._windowFrame, text = TTLocalizer.JukeboxCurrentSongNothing, scale = TTLocalizer.JGsongNameLabel)
     (self._queueList, self._queueLabel) = self._JukeboxGui__createLabeledScrolledList(guiNode, 'queue', label = TTLocalizer.JukeboxQueueLabel, parent = self._windowFrame)
     (self._songsList, self._songsLabel) = self._JukeboxGui__createLabeledScrolledList(guiNode, 'songs', label = TTLocalizer.JukeboxSongsLabel, parent = self._windowFrame)
     pos = guiNode.find('**/addButton_text_locator').getPos()
     self._addSongButton = self._JukeboxGui__createButton(guiNode, 'addSongButton', parent = self._windowFrame, command = self._JukeboxGui__handleAddSongButtonClick, image3_color = Vec4(0.59999999999999998, 0.59999999999999998, 0.59999999999999998, 0.59999999999999998), text = TTLocalizer.JukeboxAddSong, text_align = TextNode.ACenter, text_pos = (pos[0], pos[2]), text_scale = TTLocalizer.JGaddSongButton)
     self._closeButton = self._JukeboxGui__createButton(guiNode, 'can_cancelButton', parent = self._windowFrame, command = self._JukeboxGui__handleCloseButtonClick)
     pos = guiNode.find('**/close_text_locator').getPos()
     self._closeButton = self._JukeboxGui__createButton(guiNode, 'close', parent = self._windowFrame, command = self._JukeboxGui__handleCloseButtonClick, text = TTLocalizer.JukeboxClose, text_align = TextNode.ACenter, text_pos = (pos[0], pos[2]), text_scale = 0.080000000000000002)
     self._moveToTopButton = self._JukeboxGui__createButton(guiNode, 'moveToTop', command = self._JukeboxGui__handleMoveToTopButtonClick)
     guiNode.removeNode()
     self._loaded = True
Exemple #9
0
 def load(self):
     buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     upButton = buttonModels.find('**//InventoryButtonUp')
     downButton = buttonModels.find('**/InventoryButtonDown')
     rolloverButton = buttonModels.find('**/InventoryButtonRollover')
     self.exitButton = DirectButton(relief=None, text=TTLocalizer.PartyTeamActivityExitButton, text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.15), text_scale=0.5, image=(upButton, downButton, rolloverButton), image_color=(1, 0, 0, 1), image_scale=(14.5, 1, 9), pos=(0, 0, 0.8), scale=0.15, command=self.handleExitButtonClick)
     self.exitButton.hide()
     if self.activity.toonsCanSwitchTeams():
         self.switchButton = DirectButton(relief=None, text=TTLocalizer.PartyTeamActivitySwitchTeamsButton, text_fg=(1, 1, 1, 1), text_pos=(0, 0.1), text_scale=0.5, image=(upButton, downButton, rolloverButton), image_color=(0, 1, 0, 1), image_scale=(15, 1, 15), pos=(0, 0, 0.5), scale=0.15, command=self.handleSwitchButtonClick)
         self.switchButton.hide()
     else:
         self.switchButton = None
     buttonModels.removeNode()
     self.countdownText = OnscreenText(text='', pos=(0.0, -0.2), scale=PartyGlobals.TeamActivityTextScale * 1.2, fg=(1.0, 1.0, 0.65, 1.0), align=TextNode.ACenter, font=ToontownGlobals.getSignFont(), mayChange=True)
     self.countdownText.hide()
     self.statusText = OnscreenText(text='', pos=(0.0, 0.0), scale=PartyGlobals.TeamActivityTextScale, fg=PartyGlobals.TeamActivityStatusColor, align=TextNode.ACenter, font=ToontownGlobals.getSignFont(), mayChange=True)
     self.statusText.hide()
     self.timer = PartyUtils.getNewToontownTimer()
     self.timer.hide()
     return
Exemple #10
0
    def load(self):
        if self.__loaded:
            return
        
        # Load Timer
        self.__timerPad = PartyUtils.getNewToontownTimer()
    
        # set up the cannon aiming/firing gui
        guiModel = "phase_4/models/gui/cannon_game_gui"
        guiNode = loader.loadModel(guiModel)
        self.__aimPad = DirectFrame(image = guiNode.find("**/CannonFire_PAD"),
                                  relief = None,
                                  pos = (0.7, 0, -0.553333),
                                  scale = 0.8,
                                  )
        guiNode.removeNode()

        # Set up the fire and arrow buttons
        self.fireButton = DirectButton(parent = self.__aimPad,
                                       image = ((guiModel, "**/Fire_Btn_UP"),
                                                (guiModel, "**/Fire_Btn_DN"),
                                                (guiModel, "**/Fire_Btn_RLVR"),
                                                ),
                                       relief = None,
                                       pos = (0.0115741,0,0.00505051),
                                       scale = 1.,
                                       command = self.__firePressed,
                                       )
        self.upButton = DirectButton(parent = self.__aimPad,
                                     image = ((guiModel, "**/Cannon_Arrow_UP"),
                                              (guiModel, "**/Cannon_Arrow_DN"),
                                              (guiModel, "**/Cannon_Arrow_RLVR"),
                                              ),
                                     relief = None,
                                     pos = (0.0115741,0,0.221717),
                                     )
        self.downButton = DirectButton(parent = self.__aimPad,
                                       image = ((guiModel, "**/Cannon_Arrow_UP"),
                                                (guiModel, "**/Cannon_Arrow_DN"),
                                                (guiModel, "**/Cannon_Arrow_RLVR"),
                                                ),
                                       relief = None,
                                       pos = (0.0136112,0,-0.210101),
                                       image_hpr = (0,0,180),
                                       )
        self.leftButton = DirectButton(parent = self.__aimPad,
                                       image = ((guiModel, "**/Cannon_Arrow_UP"),
                                                (guiModel, "**/Cannon_Arrow_DN"),
                                                (guiModel, "**/Cannon_Arrow_RLVR"),
                                                ),
                                       relief = None,
                                       pos = (-0.199352,0,-0.000505269),
                                       image_hpr = (0,0,-90),
                                       )
        self.rightButton = DirectButton(parent = self.__aimPad,
                                        image = ((guiModel, "**/Cannon_Arrow_UP"),
                                                 (guiModel, "**/Cannon_Arrow_DN"),
                                                 (guiModel, "**/Cannon_Arrow_RLVR"),
                                                 ),
                                        relief = None,
                                        pos = (0.219167,0,-0.00101024),
                                        image_hpr = (0,0,90),
                                        )

        # Make the aim pad semi transparent
        self.__aimPad.setColor(1,1,1, 0.9)

        # Set up the button press/release handlers
        # Buttons have the ability send signal as long as they're pressed.
        def bindButton(button, upHandler, downHandler):
            button.bind(DGG.B1PRESS, lambda x, handler=upHandler : handler())
            button.bind(DGG.B1RELEASE, lambda x, handler=downHandler : handler())
       
        bindButton(self.upButton, self.__upPressed, self.__upReleased)
        bindButton(self.downButton, self.__downPressed, self.__downReleased)
        bindButton(self.leftButton, self.__leftPressed, self.__leftReleased)
        bindButton(self.rightButton, self.__rightPressed, self.__rightReleased)

        self.__loaded = True
Exemple #11
0
    def load(self):
        """
        Loads the Jukebox GUI model and initializes the lists, buttons and labels
        """
        if self.isLoaded():
            return

        guiNode = loader.loadModel("phase_13/models/parties/jukeboxGUI")

        # Timer
        self._timerGui = PartyUtils.getNewToontownTimer()

        # Window
        self._windowFrame = DirectFrame(
            image=guiNode.find("**/background"),
            relief=None,
            pos=(0, 0, 0),
            scale=0.7,
        )

        # Dashboard
        self._songFrame = DirectFrame(
            image=guiNode.find("**/songTitle_background"),
            parent=self._windowFrame,
            relief=None,
        )
        self._currentlyPlayingLabel = self.__createLabel(
            guiNode,
            "currentlyPlaying",
            parent=self._windowFrame,
            text=TTLocalizer.JukeboxCurrentlyPlayingNothing,
            scale=TTLocalizer.JGcurrentlyPlayingLabel,
        )
        self._songNameLabel = self.__createLabel(
            guiNode,
            "songName",
            parent=self._windowFrame,
            text=TTLocalizer.JukeboxCurrentSongNothing,
            scale=TTLocalizer.JGsongNameLabel,
        )

        # Playlist Queue
        self._queueList, self._queueLabel = self.__createLabeledScrolledList(
            guiNode,
            "queue",
            label=TTLocalizer.JukeboxQueueLabel,
            parent=self._windowFrame,
        )

        # Song List
        self._songsList, self._songsLabel = self.__createLabeledScrolledList(
            guiNode,
            "songs",
            label=TTLocalizer.JukeboxSongsLabel,
            parent=self._windowFrame,
        )

        pos = guiNode.find("**/addButton_text_locator").getPos()
        self._addSongButton = self.__createButton(
            guiNode,
            "addSongButton",
            parent=self._windowFrame,
            command=self.__handleAddSongButtonClick,
            image3_color=Vec4(0.6, 0.6, 0.6, 0.6),
            text=TTLocalizer.JukeboxAddSong,
            text_align=TextNode.ACenter,
            text_pos=(pos[0], pos[2]),
            text_scale=TTLocalizer.JGaddSongButton,
        )

        self._closeButton = self.__createButton(
            guiNode,
            "can_cancelButton",
            parent=self._windowFrame,
            command=self.__handleCloseButtonClick,
        )

        pos = guiNode.find("**/close_text_locator").getPos()
        self._closeButton = self.__createButton(
            guiNode,
            "close",
            parent=self._windowFrame,
            command=self.__handleCloseButtonClick,
            text=TTLocalizer.JukeboxClose,
            text_align=TextNode.ACenter,
            text_pos=(pos[0], pos[2]),
            text_scale=0.08,
        )

        self._moveToTopButton = self.__createButton(
            guiNode, "moveToTop", command=self.__handleMoveToTopButtonClick)

        guiNode.removeNode()

        self._loaded = True