Exemple #1
0
class InfoGUI(DirectFrame, StateData.StateData):
    notify = DirectNotifyGlobal.directNotify.newCategory('InfoGUI')

    def __init__(self, avChooser):
        DirectFrame.__init__(self,
                             pos=(0, 0, 0.05),
                             relief=None,
                             image=DGG.getDefaultDialogGeom(),
                             image_scale=(2.2, 1, 1.4),
                             image_pos=(0, 0, -0.05),
                             image_color=ToontownGlobals.GlobalDialogColor,
                             text=TTLocalizer.AvatarChooserInfo,
                             text_scale=0.12,
                             text_pos=(0, 0.5),
                             borderWidth=(0.01, 0.01))
        StateData.StateData.__init__(self, 'info-gui-done')
        self.isLoaded = False
        self.setBin('gui-popup', 0)
        self.initialiseoptions(InfoGUI)
        self.avChooser = avChooser
        self.textRolloverColor = Vec4(1, 1, 0, 1)
        self.textDownColor = Vec4(0.5, 0.9, 1, 1)
        self.textDisabledColor = Vec4(0.4, 0.8, 0.4, 1)
        self.descPos = (0.485, 0, -0.2)
        self.halloweenMiniserver = None
        self.halloweenMiniserverSeq = None
        return

    def unload(self):
        if not self.isLoaded:
            return
        self.isLoaded = False
        self.exit()
        DirectFrame.destroy(self)

    def load(self):
        if self.isLoaded:
            return
        self.isLoaded = True
        gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui')
        guiButton = loader.loadModel('phase_3/models/gui/quit_button')
        if base.cr.holidayValue == 1:
            ImagePath = 'phase_14.5/maps/halloween_server_1.png'
        else:
            if base.cr.holidayValue == 2:
                ImagePath = 'phase_14.5/maps/halloween_server_3.png'
            else:
                if base.cr.holidayValue == 3:
                    ImagePath = 'phase_14.5/maps/halloween_server_5.png'
                else:
                    if base.cr.holidayValue == 4:
                        ImagePath = 'phase_14.5/maps/halloween_server_2.png'
                    else:
                        if base.cr.holidayValue == 5:
                            ImagePath = 'phase_14.5/maps/halloween_server_4.png'
                        else:
                            if base.cr.holidayValue == 6:
                                ImagePath = 'phase_14.5/maps/halloween_server_4.png'
        self.sname = DirectLabel(parent=self,
                                 text=TTLocalizer.ServerPageName %
                                 base.cr.serverName,
                                 relief=None,
                                 pos=(0.0, 0.0, 0.35),
                                 scale=0.079,
                                 text_fg=Vec4(0, 0, 0, 1),
                                 text_align=TextNode.ACenter,
                                 text_font=ToontownGlobals.getToonFont())
        self.description = DirectLabel(parent=self,
                                       text=TTLocalizer.InfoDescription +
                                       base.cr.serverDescription,
                                       relief=None,
                                       pos=(0.0, 0.0, 0.25),
                                       scale=0.069,
                                       text_fg=Vec4(0, 0, 0, 1),
                                       text_wordwrap=24,
                                       text_align=TextNode.ACenter,
                                       text_font=ToontownGlobals.getToonFont())
        self.cancel = DirectButton(parent=self,
                                   relief=None,
                                   text=TTLocalizer.DisplaySettingsCancel,
                                   image=(guiButton.find('**/QuitBtn_UP'),
                                          guiButton.find('**/QuitBtn_DN'),
                                          guiButton.find('**/QuitBtn_RLVR')),
                                   image_scale=(0.6, 1, 1),
                                   text_scale=TTLocalizer.DSDcancel,
                                   text_pos=TTLocalizer.DSDcancelPos,
                                   pos=(0.93, 0, -0.65),
                                   command=self.__cancel)
        if base.cr.isHalloween and base.cr.holidayValue != 0:
            self.halloweenMiniserver = OnscreenImage(image=ImagePath,
                                                     pos=(0.0, 0, -0.13),
                                                     scale=(0.3125, 0.3125,
                                                            0.25))
            self.halloweenMiniserver.reparentTo(self)
            self.halloweenMiniserver.setTransparency(TransparencyAttrib.MAlpha)
            self.halloweenMiniserverSeq = Sequence(
                self.halloweenMiniserver.scaleInterval(3, (0.5, 0.5, 0.4),
                                                       blendType='easeInOut'),
                self.halloweenMiniserver.scaleInterval(3,
                                                       (0.3125, 0.3125, 0.25),
                                                       blendType='easeInOut'))
            self.halloweenMiniserverSeq.loop()
            self.event = DirectLabel(
                text='A unqiue Halloween event is\nactive on this Mini-Server!',
                relief=None,
                pos=(0.0, 0.0, -0.6),
                scale=0.069,
                text_fg=Vec4(0, 0, 0, 1),
                text_align=TextNode.ACenter,
                text_font=ToontownGlobals.getToonFont())
            self.event.reparentTo(self)
            self.eventSeq = Sequence(
                Wait(1.4), Func(self.event.setColorScale, 1, 1, 1, 0),
                Wait(1.4), Func(self.event.setColorScale, 1, 1, 1, 1))
            self.eventSeq.loop()
        gui.removeNode()
        guiButton.removeNode()
        self.hide()
        return

    def enter(self):
        if self.isEntered == 1:
            return
        self.isEntered = 1
        if self.isLoaded == 0:
            self.load()
        base.transitions.fadeScreen(0.5)
        self.show()

    def exit(self):
        if self.isEntered == 0:
            return
        self.isEntered = 0
        base.transitions.noTransitions()
        self.ignoreAll()
        self.hide()

    def __cancel(self):
        self.exit()