Esempio n. 1
0
    def __init__(self, rootParent=None):

        self.overlay = DirectFrame(
            frameColor=(1.0, 1.0, 1.0, 0.0),
            frameSize=(-1, 1, -1, 1),
            hpr=LVecBase3f(0, 0, 0),
            image='chapter4/overlay.png',
            pos=LPoint3f(0, 0, 0),
            sortOrder=200,
            image_scale=LVecBase3f(0.8, 1, 0.8),
            image_pos=LPoint3f(0, 0, 0),
            parent=rootParent,
        )
        self.overlay.setTransparency(1)

        self.newspaper = DirectFrame(
            frameColor=(1.0, 1.0, 1.0, 0.0),
            frameSize=(-1, 1, -1, 1),
            hpr=LVecBase3f(0, 0, 0),
            image='chapter4/newspaperA.png',
            pos=LPoint3f(0, 0, 0),
            sortOrder=200,
            image_scale=LVecBase3f(0.5, 1, 0.5),
            image_pos=LPoint3f(0, 0, 0),
            parent=rootParent,
        )
        self.newspaper.setTransparency(1)
Esempio n. 2
0
    def initSave(self):
        self.erosionFrame = DirectFrame(frameColor=(0, 0, 0, 0),
                                        frameSize=(-1, 1, -1, 1),
                                        pos=(-1.2, 0, 0))
        self.erosionFrame.hide()
        self.erosionFrame.setScale(.02, 1, .4)
        self.background = OnscreenImage('res/erosion_bar.png',
                                        pos=(0, 0, 0),
                                        scale=(1, 1, 1))
        self.background.setTransparency(TransparencyAttrib.MAlpha)
        self.background.reparentTo(self.erosionFrame)
        # self.erosionBar = DirectWaitBar(value=self.EROSION, pos=(0, 0, 0), barTexture='res/erosion_value.png',
        #                                 relief=None)
        # self.erosionBar.setHpr(0, 0, -90)
        # self.erosionBar.setScale(0.98, 1, 10)
        # self.erosionBar.hide()
        # self.erosionBar.reparentTo(self.erosionFrame)
        self.erosionBar = OnscreenImage('res/erosion_value.png',
                                        pos=(0, 0, 0),
                                        scale=(1, 1, 1))
        self.erosionBar.setScale(1)
        self.erosionBar.setTransparency(TransparencyAttrib.MAlpha)
        self.erosionBar.reparentTo(self.erosionFrame)

        self.currentItemFrame = DirectFrame(
            frameColor=(0, 0, 0, 0),
            frameSize=(-2, 2, -2, 2),
            pos=(-1.2, 0, .8),
            image='res/models/items/injection.png',
            scale=(.1))
        self.currentItemFrame.setTransparency(TransparencyAttrib.MAlpha)
        self.currentItemFrame.hide()
    def __init__(self, beanAmount):
        if not ScavengerHuntEffect.images:
            ScavengerHuntEffect.images = loader.loadModel('phase_4/models/props/tot_jar')
        self.npRoot = DirectFrame(parent=aspect2d, relief=None, scale=0.75, pos=(0, 0, 0.6))
        if beanAmount > 0:
            self.npRoot.setColorScale(VBase4(1, 1, 1, 0))
            self.jar = DirectFrame(parent=self.npRoot, relief=None, image=ScavengerHuntEffect.images.find('**/tot_jar'))
            self.jar.hide()
            self.eventImage = NodePath('EventImage')
            self.eventImage.reparentTo(self.npRoot)
            self.countLabel = DirectLabel(parent=self.jar, relief=None, text='+0', text_pos=(0.02, -0.2), text_scale=0.25, text_fg=(0.95,
             0.0,
             0,
             1), text_font=ToontownGlobals.getSignFont())

            def countUp(t, startVal, endVal):
                beanCountStr = startVal + t * (endVal - startVal)
                self.countLabel['text'] = '+' + `(int(beanCountStr))`

            def setCountColor(color):
                self.countLabel['text_fg'] = color

            self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(1), Func(self.jar.show), LerpColorScaleInterval(self.eventImage, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Parallel(LerpScaleInterval(self.npRoot, 1, scale=0.5, startScale=0.75), LerpPosInterval(self.npRoot, 1, pos=VBase3(-0.9, 0, -0.83))), LerpFunc(countUp, duration=2, extraArgs=[0, beanAmount]), Func(setCountColor, VBase4(0.95, 0.95, 0, 1)), Wait(3), Func(self.destroy))
        else:
            self.npRoot.setColorScale(VBase4(1, 1, 1, 0))
            self.attemptFailedMsg()
            self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(5), LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Func(self.destroy))
 def __init__(self, phaseNames):
     self.phaseNames = phaseNames
     self.model = loader.loadModel('models/gui/pir_m_gui_gen_loadingBar')
     bar = self.model.findTexture('pir_t_gui_gen_loadingBar')
     self.model.find('**/loading_bar').hide()
     self.topFrame = DirectFrame(parent = base.a2dTopRight, pos = (-0.80000000000000004, 0, -0.10000000000000001), sortOrder = NO_FADE_SORT_INDEX + 1)
     self.text = DirectLabel(relief = None, parent = self.topFrame, guiId = 'DownloadWatcherText', pos = (0, 0, 0), text = '                     ', text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), text_scale = 0.040000000000000001, textMayChange = 1, text_align = TextNode.ARight, text_pos = (0.17000000000000001, 0), sortOrder = 2)
     self.bar = DirectWaitBar(relief = None, parent = self.topFrame, guiId = 'DownloadWatcherBar', pos = (0, 0, 0), frameSize = (-0.40000000000000002, 0.38, -0.044999999999999998, 0.065000000000000002), borderWidth = (0.02, 0.02), range = 100, frameColor = (1, 1, 1, 1), barColor = (0, 0.29999999999999999, 0, 1), barTexture = bar, geom = self.model, geom_scale = 0.089999999999999997, geom_pos = (-0.014, 0, 0.01), text = '0%', text_scale = 0.040000000000000001, text_fg = (1, 1, 1, 1), text_align = TextNode.ALeft, text_pos = (0.19, 0), sortOrder = 1)
     self.bgFrame = DirectFrame(relief = DGG.FLAT, parent = self.topFrame, pos = (0, 0, 0), frameColor = (0.5, 0.27000000000000002, 0.35999999999999999, 0.20000000000000001), frameSize = (-0.44, 0.39000000000000001, -0.035999999999999997, 0.056000000000000001), borderWidth = (0.02, 0.02), scale = 0.90000000000000002, sortOrder = 0)
     self.accept('launcherPercentPhaseComplete', self.update)
Esempio n. 5
0
 def mostrar_camaras(self):
     #
     if self.reflection_buffer:
         lbl_refl=DirectLabel(text="reflejo", pos=LVector3f(-1.05, -0.4), scale=0.05)
         lbl_refl.reparentTo(self.base.aspect2d)
         frame_refl=DirectFrame(image=self.reflection_buffer.getTexture(0), scale=0.25, pos=LVector3f(-1.05, -0.7))
         frame_refl.reparentTo(self.base.aspect2d)
     #
     if self.refraction_buffer:
         lbl_refr=DirectLabel(text="refraccion", pos=LVector3f(-0.5, -0.4), scale=0.05)
         lbl_refr.reparentTo(self.base.aspect2d)
         frame_refr=DirectFrame(image=self.refraction_buffer.getTexture(0), scale=0.25, pos=LVector3f(-0.5, -0.7))
         frame_refr.reparentTo(self.base.aspect2d)
Esempio n. 6
0
    def _create_components(self):
        """ Creates the window components """
        self._node = self._parent.attach_new_node("Window")
        self._node.set_pos(self._pos.x, 1, -self._pos.y)
        border_px = 1
        border_frame_size = (-border_px, self._width + border_px, border_px,
                             -self._height - border_px)
        self._border_frame = DirectFrame(pos=(0, 1, 0),
                                         frameSize=border_frame_size,
                                         frameColor=(24 / 255.0, 131 / 255.0,
                                                     215 / 255.0, 1),
                                         parent=self._node,
                                         state=DGG.NORMAL)
        self._background = DirectFrame(pos=(0, 1, 0),
                                       frameSize=(0, self._width, 0,
                                                  -self._height),
                                       frameColor=(0.1, 0.1, 0.1, 1.0),
                                       parent=self._node)
        self._title_bar = DirectFrame(
            pos=(0, 1, 0),
            frameSize=(0, self._width, 0, -25),
            # frameColor=(0.058, 0.058, 0.058, 1),
            frameColor=(1, 1, 1, 1),
            parent=self._node,
            state=DGG.NORMAL)
        self._window_title = Text(parent=self._node,
                                  x=8,
                                  y=17,
                                  text=self._title,
                                  size=13,
                                  color=Vec3(0.15),
                                  may_change=True)
        self._btn_close = DirectButton(
            relief=DGG.FLAT,
            pressEffect=1,
            pos=(self._width - 22, 1, -12),
            frameColor=(1.0, 0.2, 0.2, 0.5),
            parent=self._node,
            scale=(45 / 2, 1, 24 / 2),
            image="/$$rp/rpcore/data/gui/close_window.png")

        # Init bindings
        self._btn_close.set_transparency(TransparencyAttrib.M_alpha)
        self._btn_close.bind(DGG.B1CLICK, self._request_close)
        self._btn_close.bind(DGG.WITHIN, self._on_close_btn_hover)
        self._btn_close.bind(DGG.WITHOUT, self._on_close_btn_out)
        self._title_bar.bind(DGG.B1PRESS, self._start_drag)
        self._title_bar.bind(DGG.B1RELEASE, self._stop_drag)
Esempio n. 7
0
 def build_page(self):
     menu_args = self.menu.gui.menu_args
     self.frm = DirectFrame(frameSize=(-1.5, 1.5, -.9, .9),
                            frameColor=(.95, .95, .7, .85))
     txt = _(
         'Please, visit our site after exiting!\n\nIt helps us! Thank you!')
     self.txt = OnscreenText(text=txt,
                             pos=(0, .64),
                             scale=.08,
                             wordwrap=32,
                             fg=menu_args.text_fg,
                             font=menu_args.font)
     menu_data = [('visit our site after exiting',
                   _('visit our site after exiting'),
                   lambda: self.on_end(True)),
                  ("don't visit our site after exiting",
                   _("don't visit our site after exiting"),
                   lambda: self.on_end(False))]
     btn_args = self.menu.gui.btn_args
     btn_args['frameSize'] = (-12, 12, -.8, 1.2)
     btn_visit = DirectButton(text=menu_data[0][1],
                              pos=(0, 1, 0),
                              command=menu_data[0][2],
                              text_scale=.9,
                              **btn_args)
     btn_dont_visit = DirectButton(text=menu_data[1][1],
                                   pos=(0, 1, -.5),
                                   command=menu_data[1][2],
                                   text_scale=.7,
                                   **btn_args)
     widgets = [self.frm, self.txt, btn_visit, btn_dont_visit]
     map(self.add_widget, widgets)
     PageGui.build_page(self, False)
Esempio n. 8
0
 def askForRequeue(self):
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     okImageList = (buttons.find('**/ChtBx_OKBtn_UP'),
                    buttons.find('**/ChtBx_OKBtn_DN'),
                    buttons.find('**/ChtBx_OKBtn_Rllvr'))
     cancelImageList = (buttons.find('**/CloseBtn_UP'),
                        buttons.find('**/CloseBtn_DN'),
                        buttons.find('**/CloseBtn_Rllvr'))
     buttons.removeNode()
     self.cr.mainMenu.buttons[0]['state'] = DISABLED
     self.requeueFrame = DirectFrame(
         relief=None,
         image=loader.loadModel('phase_13/models/gui/fade'),
         image_scale=(5, 2, 2),
         image_color=(0, 0, 0, 0.3),
         image_pos=(0.5, 0, 0),
         state=NORMAL,
         sortOrder=20)
     self.requeueDialog = YesNoDialog(
         parent=self.requeueFrame,
         text='Would you like to requeue?',
         button_text_pos=(0, -0.1),
         button_relief=None,
         buttonImageList=[okImageList, cancelImageList],
         button_text_font=FONT,
         text_font=FONT,
         command=self.requeueResponse)
Esempio n. 9
0
    def __init__(self, node, name):
        SocketBase.__init__(self, node, name)

        self.type = INSOCKET

        self.frame = DirectFrame(
            frameColor=(0.25, 0.25, 0.25, 1),
            frameSize=(-1, 0, -self.height, 0),
            parent=node.frame,
        )

        SocketBase.createPlug(self, self.frame)
        '''
        self.text = DirectLabel(
            frameColor=(0, 0, 0, 0),
            frameSize=(0, 1, -self.height, 0),
            scale=(1, 1, 1),
            text=self.name,
            text_align=TextNode.A_left,
            text_scale=(0.1, 0.1),
            text_pos=(0.1, -0.02),
            text_fg=(1, 1, 1, 1),
            text_bg=(0, 0, 0, 0),
            parent=self.frame,
        )'''

        self.checkbox = DirectCheckButton(text=name,
                                          pos=(0.5, 0, 0),
                                          scale=.1,
                                          command=self.updateConnectedNodes,
                                          parent=self.frame)

        self.resize(1)
Esempio n. 10
0
    def __init__(self, rootParent=None):

        self.frmMain = DirectFrame(
            frameColor=(0.0, 0.0, 0.0, 0.5),
            frameSize=(-1, 1, -1, 1),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0, 0, 0),
            parent=rootParent,
        )
        self.frmMain.setTransparency(0)

        self.lblVictory = DirectLabel(
            frameColor=(0.0, 0.0, 0.0, 0.0),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0, 0, 0),
            scale=LVecBase3f(0.2, 0.2, 0.2),
            text='Won Fight',
            text_align=TextNode.A_center,
            text_scale=(1, 1),
            text_pos=(0, 0),
            text_fg=LVecBase4f(1, 1, 1, 1),
            text_bg=LVecBase4f(0, 0, 0, 0),
            parent=self.frmMain,
        )
        self.lblVictory.setTransparency(0)
Esempio n. 11
0
    def __init__(self, rootParent):
        ChapterBase.__init__(self, "chapter2/warehouse.png", rootParent)

        self.startPos = (-0.7, 0, -0.5)

        self.overlay = Overlay(rootParent)

        self.flashlightLight = DirectFrame(
            frameColor=(0.0, 0.0, 0.0, 1.0),
            frameSize=(-3.5, 3.5, -3.5, 3.5),
            image='chapter2/flashlightLight.png',
            image_scale=(3.5, 1, 3.5),
            parent=rootParent,
        )
        self.flashlightLight.setTransparency(1)
        self.flashLightActive = False

        self.accept("inventory_flashlight", self.activateFlashlight)

        self.accept("box1", self.box1)
        self.accept("box2", self.box2)
        self.accept("box3", self.box3)

        self.accept("mike", self.talkMike)

        base.messenger.send("animateChar", ["idle", "r", 3, True])
        base.messenger.send("showNote", ["I should turn on my flashlight"])

        base.taskMgr.add(self.flashlightTask, "flaslightLightTask")
Esempio n. 12
0
 def __init__(self, menu_args):
     GameObject.__init__(self)
     self.eng.log('created match form (init)')
     self.room = ''
     self.invited_users = [self.eng.xmpp.client.boundjid.bare]
     self.menu_args = menu_args
     lab_args = menu_args.label_args
     lab_args['scale'] = .046
     self.match_frm = DirectFrame(frameSize=(-.02, 2.5, 0, .45),
                                  frameColor=(.2, .2, .2, .5),
                                  pos=(.04, 1, -.46),
                                  parent=base.a2dTopLeft)
     usr = [
         usr for usr in self.eng.xmpp.users
         if usr.name == self.eng.xmpp.client.boundjid.bare
     ][0]
     frm = UserFrmMe(self.eng.xmpp.client.boundjid.bare,
                     self.eng.xmpp.client.boundjid.bare, usr.is_supporter,
                     True, (.1, 1, .38), self.match_frm, self.menu_args,
                     .32)
     self.forms = [frm]
     for i in range(0, 8):
         row, col = i % 4, i / 4
         DirectLabel(text=str(i + 1) + '.',
                     pos=(.06 + 1.24 * col, 1, .38 - .08 * row),
                     parent=self.match_frm,
                     **lab_args)
Esempio n. 13
0
def test_frame_geom_states():
    frame = DirectFrame(geom=(NodePath("A"), NodePath("B"), NodePath("C")),
                        numStates=3)
    assert frame.hascomponent('geom0')
    assert frame.hascomponent('geom1')
    assert frame.hascomponent('geom2')
    assert not frame.hascomponent('geom3')

    assert frame.component('geom0').name == "A"
    assert frame.component('geom1').name == "B"
    assert frame.component('geom2').name == "C"

    # Change geom for all states
    frame.setGeom(NodePath("Foo"))

    assert frame.component('geom0').name == "Foo"
    assert frame.component('geom1').name == "Foo"
    assert frame.component('geom2').name == "Foo"

    # Change geom per state
    states = (NodePath("1"), NodePath("2"), NodePath("3"))
    frame.setGeom(states)
    assert frame.component('geom0').name == "1"
    assert frame.component('geom1').name == "2"
    assert frame.component('geom2').name == "3"

    # Changing via list should work too
    frame.setGeom(list(states))

    # Clear geom
    frame.clearGeom()
    assert not frame.hascomponent('geom0')
    assert not frame.hascomponent('geom1')
    assert not frame.hascomponent('geom2')
Esempio n. 14
0
    def __init__(self, node, name):
        SocketBase.__init__(self, node, name)

        self.type = OUTSOCKET

        self.frame = DirectFrame(
            frameColor=(0.25, 0.25, 0.25, 1),
            frameSize=(-1, 0, -self.height, 0),
            parent=node.frame,
        )

        SocketBase.createPlug(self, self.frame)

        self.text = DirectLabel(
            frameColor=(0, 0, 0, 0),
            frameSize=(-1, 0, -self.height, 0),
            scale=(1, 1, 1),
            text=self.name,
            text_align=TextNode.A_right,
            text_scale=(0.1, 0.1),
            text_pos=(-0.1, -0.02),
            text_fg=(1, 1, 1, 1),
            text_bg=(0, 0, 0, 0),
            parent=self.frame,
        )

        self.resize(1)
Esempio n. 15
0
    def _create_components(self):
        """ Internal method to init the widgets components """

        self._node.hide()

        # Create the texture where the gui component is rendered inside
        self._storage_tex = Image.create_2d("ExposureDisplay", 140, 20, "RGBA8")
        self._storage_tex.set_clear_color(Vec4(0.2, 0.6, 1.0, 1.0))
        self._storage_tex.clear_image()

        self._bg_frame = DirectFrame(
            parent=self._node, frameColor=(0.1, 0.1, 0.1, 1.0),
            frameSize=(200, 0, -10, -85), pos=(0, 0, 0))

        self._display_img = Sprite(
            image=self._storage_tex, parent=self._node, w=140, h=20, x=20, y=50)

        self._display_txt = Text(
            text="Current Exposure".upper(), parent=self._node, x=160, y=40,
            size=13, color=Vec3(0.8), align="right")

        # Create the shader which generates the visualization texture
        self._cshader_node = ComputeNode("ExposureWidget")
        self._cshader_node.add_dispatch(140 // 10, 20 // 4, 1)

        self._cshader_np = self._node.attach_new_node(self._cshader_node)

        # Defer the further loading
        Globals.base.taskMgr.doMethodLater(1.0, self._late_init, "ExposureLateInit")
Esempio n. 16
0
 def build_page(self):
     self.frm = DirectFrame(frameSize=(-1.5, 1.5, -.9, .9),
                            frameColor=(.95, .95, .7, .85))
     txt = _("What do you want to do?\n\nNB Use 'p' for pausing the game.")
     menu_args = self.menu.gui.menu_args
     self.txt = OnscreenText(text=txt,
                             pos=(0, .64),
                             scale=.08,
                             wordwrap=32,
                             fg=menu_args.text_fg,
                             font=menu_args.font)
     on_back = lambda: self.on_end(True)
     on_end = lambda: self.on_end(False)
     menu_data = [('back to the game', _('back to the game'), on_back),
                  ('back to the main menu', _('back to the main menu'),
                   on_end)]
     btn_args = self.menu.gui.btn_args
     btn_visit = DirectButton(text=menu_data[0][1],
                              pos=(0, 1, 0),
                              command=menu_data[0][2],
                              text_scale=.8,
                              **btn_args)
     btn_dont_visit = DirectButton(text=menu_data[1][1],
                                   pos=(0, 1, -.5),
                                   command=menu_data[1][2],
                                   text_scale=.8,
                                   **btn_args)
     map(self.add_widget, [self.frm, self.txt, btn_visit, btn_dont_visit])
     PageGui.build_page(self, False)
     eng.hide_cursor()
     eng.show_standard_cursor()
     eng.do_later(.01, eng.toggle_pause, [False])
Esempio n. 17
0
    def set_news(self):
        menu_gui = self.menu.gui
        menu_args = self.menu.gui.menu_args
        feeds = parse(self.props.feed_url)
        if not feeds['entries']:
            return

        def conv(datestr):
            months = [
                'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
                'Oct', 'Nov', 'Dec'
            ]
            date_el = datestr.split()[1:-2]
            month = months.index(date_el[1]) + 1
            day, year = date_el[0], date_el[2]
            return datetime(int(year), month, int(day))

        publ = lambda entry: conv(entry['published'])
        rss = sorted(feeds['entries'], key=publ)
        conv_time = lambda ent: datetime.strftime(conv(ent), '%b %d')
        rss = [(conv_time(ent['published']), ent['title']) for ent in rss]
        rss.reverse()
        rss = rss[:5]

        def conv_str(_str):
            return _str if len(_str) <= 20 else _str[:20] + '...'

        rss = [(_rss[0], conv_str(_rss[1])) for _rss in rss]
        frm = DirectFrame(frameSize=(0, 1.0, 0, .75),
                          frameColor=(.2, .2, .2, .5),
                          pos=(.05, 1, .1),
                          parent=base.a2dBottomLeft)
        texts = [
            OnscreenText(_('Last news:'),
                         pos=(.55, .75),
                         scale=.055,
                         wordwrap=32,
                         parent=base.a2dBottomLeft,
                         fg=menu_args.text_bg,
                         font=menu_args.font)
        ]
        texts += [
            OnscreenText(': '.join(rss[i]),
                         pos=(.1, .65 - i * .1),
                         scale=.055,
                         wordwrap=32,
                         parent=base.a2dBottomLeft,
                         align=TextNode.A_left,
                         fg=menu_args.text_bg,
                         font=menu_args.font) for i in range(5)
        ]
        btn_args = menu_gui.btn_args.copy()
        btn_args['scale'] = .055
        btn = DirectButton(text=_('show'),
                           pos=(.55, 1, .15),
                           command=eng.open_browser,
                           extraArgs=[self.props.site_url],
                           parent=base.a2dBottomLeft,
                           **btn_args)
        map(self.add_widget, [frm] + texts + [btn])
Esempio n. 18
0
    def makeGUI(self):
        '''
        Creates GUI controls and renders on screen
        Health, targeting reticle, ammunition, weapon display, score
        store results in self.playerGUI
        '''
        # TODO GUI logic for player
        self.playerGUI = DirectFrame(
            frameSize=(base.a2dLeft, base.a2dRight, base.a2dBottom,
                       base.a2dTop),
            frameColor=(0, 0, 0, 0)  #make completely transparent
        )
        reticle = OnscreenImage(image='images/reticle.png',
                                scale=(0.5, 1, .25))
        reticle.setTransparency(TransparencyAttrib.MAlpha)
        reticle.reparentTo(self.playerGUI)
        self.playerGUI.HP = OnscreenText(text="HEALTH",
                                         pos=(0.95, 0.8),
                                         scale=0.2,
                                         fg=(0, 0, 90, 1),
                                         align=TextNode.ACenter,
                                         mayChange=1)

        self.playerGUI.HP.reparentTo(self.playerGUI)
        self.playerGUI.score = OnscreenText(text="Score: 0",
                                            pos=(-1.5, 0.8),
                                            scale=0.2,
                                            fg=(0, 0, 90, 1),
                                            align=TextNode.ALeft,
                                            mayChange=1)
        self.playerGUI.score.reparentTo(self.playerGUI)
Esempio n. 19
0
 def create_layout(self, group):
     scale3 = LVector3(self.text_scale[0], 1.0, self.text_scale[1])
     buttonSize = self.font_size * 2
     self.layout = DirectWidgetContainer(
         TabbedFrame(frameSize=(0, self.width, -self.height, 0),
                     tab_frameSize=(0, 7, 0, 2),
                     tab_scale=scale3,
                     tab_text_align=TextNode.ALeft,
                     tab_text_pos=(0.2, 0.6),
                     tabUnselectedColor=settings.tab_background,
                     tabSelectedColor=settings.panel_background,
                     scroll_scrollBarWidth=self.font_size,
                     scroll_verticalScroll_pageSize=self.font_size))
     self.layout.frame.setPos(0, 0, -buttonSize)
     for section in group.parameters:
         sizer = Sizer("vertical")
         frame = DirectFrame(state=DGG.NORMAL,
                             frameColor=settings.panel_background)
         self.add_parameters(frame, sizer, section.parameters)
         sizer.update((self.width, self.height))
         size = sizer.min_size
         frame['frameSize'] = (0, size[0], -size[1], 0)
         self.layout.frame.addPage(frame, section.name)
     title = "Editor - " + group.name
     self.window = Window(title,
                          parent=pixel2d,
                          scale=self.scale,
                          child=self.layout,
                          owner=self)
     self.window.register_scroller(self.layout.frame.viewingArea)
Esempio n. 20
0
    def __init__(self, name, parent):
        self.right = 0.5
        self.left = -0.5
        self.name = name
        self.nodeID = uuid4()
        self.inputList = []
        self.outputList = []
        self.selected = False
        self.allowRecursion = False
        self.hasError = False

        self.normalColor = (0.25, 0.25, 0.25, 1)
        self.highlightColor = (0.45, 0.45, 0.45, 1)
        self.errorColor = (1, 0.25, 0.25, 1)
        self.errorHighlightColor = (1, 0.45, 0.45, 1)

        self.frame = DirectFrame(state=DGG.NORMAL,
                                 text=name,
                                 text_align=TextNode.A_left,
                                 text_scale=0.1,
                                 text_pos=(self.left, 0.12),
                                 text_fg=(1, 1, 1, 1),
                                 frameColor=self.normalColor,
                                 frameSize=(self.left, self.right, -.6, 0.2),
                                 parent=parent)

        self.setupBind()
        self.hide()

        self.setPos = self.frame.setPos
        self.getPos = self.frame.getPos
Esempio n. 21
0
 def save(self, doSave):
     if doSave:
         path = self.browser.get()
         path = os.path.expanduser(path)
         path = os.path.expandvars(path)
         if os.path.exists(path):
             self.dlgOverwrite = YesNoDialog(
                 text="File already Exist.\nOverwrite?",
                 relief=DGG.RIDGE,
                 frameColor=(1, 1, 1, 1),
                 frameSize=(-0.5, 0.5, -0.3, 0.2),
                 sortOrder=1,
                 button_relief=DGG.FLAT,
                 button_frameColor=(0.8, 0.8, 0.8, 1),
                 command=self.__executeSave,
                 extraArgs=[path],
                 scale=300,
                 pos=(base.getSize()[0] / 2, 0, -base.getSize()[1] / 2),
                 parent=base.pixel2d)
             self.dlgOverwriteShadow = DirectFrame(
                 pos=(base.getSize()[0] / 2 + 10, 0,
                      -base.getSize()[1] / 2 - 10),
                 sortOrder=0,
                 frameColor=(0, 0, 0, 0.5),
                 frameSize=self.dlgOverwrite.bounds,
                 scale=300,
                 parent=base.pixel2d)
             self.dlgOverwrite.setBin("gui-popup", 1)
         else:
             self.__executeSave(True, path)
         base.messenger.send("setLastPath", [path])
     self.browser.destroy()
     del self.browser
Esempio n. 22
0
    def __init__(self, rootParent=None):

        self.frmMain = DirectFrame(
            frameColor=(1, 1, 1, 1),
            frameSize=(-1, 1, -1, 1),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0, 0, 0),
            parent=rootParent,
        )
        self.frmMain.setTransparency(0)

        self.waitbar = DirectWaitBar(
            barColor=(0.0, 0.0, 1.0, 1.0),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0, 0, 0),
            state='normal',
            text='0%',
            value=50.0,
            text_align=TextNode.A_center,
            text_scale=(0.1, 0.1),
            text_pos=(0, -0.025),
            text_fg=LVecBase4f(0, 0, 0, 1),
            text_bg=LVecBase4f(0, 0, 0, 0),
            parent=self.frmMain,
        )
        self.waitbar.setTransparency(0)
    def __init__(self, poster, reward, **kw):
        optiondefs = (('relief', None, None), ('image',
                                               QuestGlobals.getJBIcon(), None),
                      ('image_scale', QuestGlobals.JB_JAR_SCALE,
                       None), ('state', DGG.NORMAL, None))
        self.defineoptions(kw, optiondefs)

        # Finally, initialize the DirectFrame.
        DirectFrame.__init__(self, parent=poster, relief=None)
        self.initialiseoptions(QuestRewardFrame)
        self.reward = reward

        gagShopGeom = loader.loadModel(
            'phase_4/models/gui/gag_shop_purchase_gui.bam')
        self.info = DirectFrame(parent=self,
                                relief=None,
                                geom=gagShopGeom.find('**/Char_Pnl'),
                                geom_scale=(0.15, 0, 0.1275),
                                text='0',
                                text_font=CIGlobals.getToonFont(),
                                text_scale=0.04,
                                text_fg=(0, 0, 0, 1),
                                text_align=TextNode.ACenter,
                                text_pos=(0, -0.01),
                                pos=(0, 0, -0.06))
        self.info.setBin('gui-popup', 40)

        gagShopGeom.removeNode()
        self.hide()
 def __init__(self, beanAmount):
     ScavengerHuntEffect.__init__(self, beanAmount)
     if beanAmount > 0:
         self.pumpkin = DirectFrame(
             parent=self.eventImage,
             relief=None,
             image=ScavengerHuntEffect.images.find('**/tot_pumpkin_tall'))
Esempio n. 25
0
def test_frame_text_states():
    frame = DirectFrame(text=("A", "B", "C"), numStates=3)
    assert frame.hascomponent('text0')
    assert frame.hascomponent('text1')
    assert frame.hascomponent('text2')
    assert not frame.hascomponent('text3')

    assert frame.component('text0').text == "A"
    assert frame.component('text1').text == "B"
    assert frame.component('text2').text == "C"

    # Change text for all states
    frame.setText("Foo")

    assert frame.component('text0').text == "Foo"
    assert frame.component('text1').text == "Foo"
    assert frame.component('text2').text == "Foo"

    # Change text per state
    frame.setText(("1", "2", "3"))
    assert frame.component('text0').text == "1"
    assert frame.component('text1').text == "2"
    assert frame.component('text2').text == "3"

    # Changing via list should work too
    frame.setText(["1", "2", "3"])

    # Clear text
    frame.clearText()
    assert not frame.hascomponent('text0')
    assert not frame.hascomponent('text1')
    assert not frame.hascomponent('text2')
Esempio n. 26
0
 def createPlug(self, parent):
     self.plug = DirectFrame(
         state=DGG.NORMAL,
         frameColor=(0, 0, 0, 1),
         frameSize=(-0.05, 0.05, -0.05, 0.05),
         parent=parent,
     )
     self.setupBind()
Esempio n. 27
0
 def toggle(self, show_frm=True):
     if not self.mdt.logic.is_paused:
         if show_frm:
             self.pause_frame = DirectFrame(frameColor=(.3, .3, .3, .7),
                                            frameSize=(-1.8, 1.8, -1, 1))
     else:
         if self.pause_frame:
             self.pause_frame.destroy()
Esempio n. 28
0
    def __init__(self, rootParent=None):
        
        self.frmMain = DirectFrame(
            frameColor=(0.25, 0.25, 0.25, 1.0),
            frameSize=(0.0, 2.0, -0.1, 0.0),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0, 0, 0),
            parent=rootParent,
        )
        self.frmMain.setTransparency(0)

        self.btnLeave = DirectButton(
            hpr=LVecBase3f(0, 0, 0),
            pad=(0.1, 0.1),
            pos=LPoint3f(0.115, 0, -0.075),
            relief=1,
            scale=LVecBase3f(0.1, 0.1, 0.1),
            text='Leave',
            text_align=TextNode.A_center,
            text_scale=(0.75, 0.75),
            text_pos=(0, 0),
            text_fg=LVecBase4f(0, 0, 0, 1),
            text_bg=LVecBase4f(0, 0, 0, 0),
            parent=self.frmMain,
            command=base.messenger.send,
            extraArgs=["leaveRoom"],
        )
        self.btnLeave.setTransparency(0)

        self.lblPlayerName = DirectLabel(
            frameColor=(0.8, 0.8, 0.8, 0.0),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0.55, 0, -0.075),
            scale=LVecBase3f(0.1, 0.1, 0.1),
            text='Label',
            text_align=TextNode.A_left,
            text_scale=(0.75, 0.75),
            text_pos=(0, 0),
            text_fg=LVecBase4f(0.8, 0.8, 0.8, 1),
            text_bg=LVecBase4f(0, 0, 0, 0),
            parent=self.frmMain,
        )
        self.lblPlayerName.setTransparency(0)

        self.pg1983 = DirectLabel(
            frameColor=(0.8, 0.8, 0.8, 0.0),
            hpr=LVecBase3f(0, 0, 0),
            pos=LPoint3f(0.42, 0, -0.075),
            scale=LVecBase3f(0.1, 0.1, 0.1),
            text='Name:',
            text_align=TextNode.A_center,
            text_scale=(0.75, 0.75),
            text_pos=(0, 0),
            text_fg=LVecBase4f(0.6, 0.6, 0.6, 1),
            text_bg=LVecBase4f(0, 0, 0, 0),
            parent=self.frmMain,
        )
        self.pg1983.setTransparency(0)
 def __init__(self, beanAmount):
     ScavengerHuntEffect.__init__(self, beanAmount)
     if beanAmount > 0:
         sm = loader.loadModel(
             'phase_5.5/models/estate/tt_m_prp_ext_snowman_icon')
         self.snowman = DirectFrame(parent=self.eventImage,
                                    relief=None,
                                    image=sm,
                                    scale=20.0)
Esempio n. 30
0
 def __init__(self, menu_args):
     GameObject.__init__(self)
     self.eng.log('created match message form')
     self.chat = None
     self.msg_frm = DirectFrame(
         frameSize=(-.02, 2.5, 0, 1.22),
         frameColor=(.2, .2, .2, .5),
         pos=(.04, 1, -1.69), parent=base.a2dTopLeft)
     t_a = menu_args.text_args
     t_a['scale'] = .05
     t_a['fg'] = menu_args.text_normal
     self.dst_txt = OnscreenText(
         text='', pos=(0, 1.16), parent=self.msg_frm, align=TextNode.A_left,
         **t_a)
     self.ent = Entry(
         scale=.04, pos=(0, 1, .03), entryFont=menu_args.font, width=62,
         frameColor=menu_args.btn_color, parent=self.msg_frm,
         initialText=_('write here your message'),
         command=self.on_typed_msg, focusInCommand=self.on_focus,
         focusInExtraArgs=['in'], focusOutCommand=self.on_focus,
         focusOutExtraArgs=['out'], text_fg=menu_args.text_active)
     self.ent['state'] = DISABLED
     self.txt_frm = DirectScrolledFrame(
         frameSize=(-.02, 2.46, -.02, 1.02),
         canvasSize=(-.02, 2.42, -.02, 1.02),
         scrollBarWidth=.036,
         verticalScroll_relief=FLAT,
         verticalScroll_frameColor=(.2, .2, .2, .4),
         verticalScroll_thumb_relief=FLAT,
         verticalScroll_thumb_frameColor=(.8, .8, .8, .6),
         verticalScroll_incButton_relief=FLAT,
         verticalScroll_incButton_frameColor=(.8, .8, .8, .6),
         verticalScroll_decButton_relief=FLAT,
         verticalScroll_decButton_frameColor=(.8, .8, .8, .6),
         horizontalScroll_relief=FLAT,
         frameColor=(1, 1, 1, .0),
         pos=(.02, 1, .11), parent=self.msg_frm)
     t_a['scale'] = .046
     self.msg_txt = OnscreenText(
         text='', pos=(0, .24), parent=self.txt_frm.getCanvas(),
         align=TextNode.A_left, wordwrap=52, **t_a)
     lab_args = menu_args.label_args
     lab_args['scale'] = .046
     lab_args['text_fg'] = menu_args.text_normal
     self.lab_frm = Btn(
         frameSize=(-.02, 2.5, -.01, .05),
         frameColor=(1, 1, 1, 0),
         pos=(0, 1, 1.15), parent=self.msg_frm)
     self.lab_frm.bind(ENTER, self.on_enter)
     self.lab_frm.bind(EXIT, self.on_exit)
     self.tooltip = DirectLabel(
         text='', pos=(2.4, 1, -.06),
         parent=self.lab_frm, text_wordwrap=50, text_bg=(.2, .2, .2, .8),
         text_align=TextNode.A_right, **lab_args)
     self.tooltip.set_bin('gui-popup', 10)
     self.tooltip.hide()