Ejemplo n.º 1
0
    def on_remove_stream(self, event):
        """Remove geometry stream"""
        if not pynebula.exists( str("/usr/streams") ):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(
                    self.get_frame(), 
                    nodelibdlg.OPEN,
                    'stream', 
                    'Stream', 
                    "/usr/streams"
                    )
        if dlg.ShowModal() == wx.ID_OK:
            # Check that's an existing stream
            if not dlg.node_exists():
                msg = "There is no stream called '%s'" % dlg.get_guiname()
                cjr.show_error_message(msg)
            else:
                # remove the stream
                dlg2 = waitdlg.WaitDialog(
                            self.get_frame(),
                            "Removing stream '%s' ..." % dlg.get_guiname()
                            )
                dlg.get_node().removestream()
                dlg2.Destroy()
        dlg.Destroy()
Ejemplo n.º 2
0
    def on_open_stream(self, event):
        """Open geometry stream"""
        # Ask for the stream name
        if not pynebula.exists( str("/usr/streams") ):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(
                    self.get_frame(), 
                    nodelibdlg.OPEN,
                    'stream', 
                    'Stream', 
                    "/usr/streams"
                    )
        if dlg.ShowModal() == wx.ID_OK:
            # Check that's an existing stream
            if not dlg.node_exists():
                msg = "There is no stream called '%s'"  % dlg.get_guiname()
                cjr.show_error_message(msg)
            else:
                # open the stream for editing
                win = objdlg.create_window(
                            wx.GetApp().GetTopWindow(), 
                            dlg.get_node().getfullname() 
                            )
                win.display()
        dlg.Destroy()
Ejemplo n.º 3
0
    def on_create_stream(self, event):
        """Create geometry stream"""
        # Ask for the new stream name
        if not pynebula.exists( str("/usr/streams") ):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(
                    self.get_frame(), 
                    nodelibdlg.NEW,
                    'stream', 
                    'Stream', 
                    "/usr/streams"
                    )
        if dlg.ShowModal() == wx.ID_OK:
            # Check that's a new stream name
            if dlg.node_exists():
                msg = "There's already a stream named"
                msg = msg + " '" + dlg.get_guiname() + "'.\n"
                msg = msg + "You should enter a new stream name."
                cjr.show_error_message(msg)
            else:
                # create the new stream
                obj = app.get_state("geometrystream").createstream(
                            str( dlg.get_guiname() ) 
                            )
                win = objdlg.create_window(
                            wx.GetApp().GetTopWindow(), 
                            obj.getfullname() 
                            )
                win.display()
        dlg.Destroy()
Ejemplo n.º 4
0
 def on_build_streams(self, event):
     """Build all streams"""
     # Build all dirty streams
     if not pynebula.exists( str("/usr/streams") ):
         app.get_state("geometrystream").loadstreamlibrary()
     dlg2 = waitdlg.WaitDialog( self.get_frame(), "Building streams ..." )
     app.get_state("geometrystream").buildallstreams()
     dlg2.Destroy()
Ejemplo n.º 5
0
 def on_build_streams(self, event):
     """Build all streams"""
     # Build all dirty streams
     if not pynebula.exists(str("/usr/streams")):
         app.get_state("geometrystream").loadstreamlibrary()
     dlg2 = waitdlg.WaitDialog(self.get_frame(), "Building streams ...")
     app.get_state("geometrystream").buildallstreams()
     dlg2.Destroy()
Ejemplo n.º 6
0
def get_node_list(path):
    """
    Lists all child nodes in the library path
    """
    gui_names = []
    if (pynebula.exists(str(path))):
        obj = pynebula.sel(path)
        children = obj.getchildren()
        for node in children:
            gui_names.append(node.getname())

    return gui_names
Ejemplo n.º 7
0
def OnGraphicsStartup():
    if not nebula.exists('/sys/servers/scene'):
        print "The scene server hasn't been created yet?"
        return
    sceneServer = nebula.lookup('/sys/servers/scene')
    if nebula.exists('/sys/servers/gfx'):
        featureSet = nebula.lookup('/sys/servers/gfx').getfeatureset()
        if featureSet == "dx9":
            # DX9 hardware without floating point render targets
            sceneServer.setrenderpathfilename("data:shaders/dx9_renderpath.xml")
        elif featureSet == "dx9flt":
            # DX9 hardware with floating point render targets,
            # use HDR render path
            sceneServer.setrenderpathfilename("data:shaders/dx9hdr_renderpath.xml")
        else:
            # non-DX9 hardware, use fixed function render path
            sceneServer.setrenderpathfilename("data:shaders/dx7_renderpath.xml")
    else:
        sceneServer.setrenderpathfilename("data:shaders/dx9_renderpath.xml")

    # enable zFail shadow rendering
    if nebula.exists('/sys/servers/shadow'):
        nebula.lookup('/sys/servers/shadow').setusezfail(True)
Ejemplo n.º 8
0
    def __init__(self, parent, style, label1, label2, path, default_name=""):
        if style == NEW:
            title = "Choose a %s name" % label1
        elif style == OPEN:
            title = "Choose a %s to open" % label1
        elif style == DELETE:
            title = "Choose a %s to delete" % label1
        else:
            title = "Choose a %s" % label1
        wx.Dialog.__init__(
            self, 
            parent, 
            title=title,
            style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER
            )
        self.style = style
        self.path = path
        if (pynebula.exists(str(path))):
            self.root = pynebula.lookup( str(path) )
        else:
            self.root = None

        self.list_nodes = wx.ListBox(
                                self, 
                                -1, 
                                choices = get_node_list(self.path)
                                )

        if self.style == NEW:
            self.label_file = wx.StaticText(
                                    self, 
                                    -1, 
                                    "%s name" % label2
                                    )
            self.text_file = wx.TextCtrl(self, -1, default_name)
        if self.style == NEW:
            ok_caption = "&New"
        elif self.style == OPEN:
            ok_caption = "&Open"
        elif self.style == DELETE:
            ok_caption = "&Delete"
        else:
            ok_caption = "&OK"

        self.button_ok = wx.Button(self, -1, ok_caption)
        self.button_cancel = wx.Button(self, wx.ID_CANCEL, "&Cancel")

        self.__set_properties()
        self.__do_layout()
        self.__bind_events()
Ejemplo n.º 9
0
def OnGraphicsStartup():
    if not nebula.exists("/sys/servers/scene"):
        print "The scene server hasn't been created yet?"
        return
    sceneServer = nebula.lookup("/sys/servers/scene")
    if nebula.exists("/sys/servers/gfx"):
        featureSet = nebula.lookup("/sys/servers/gfx").getfeatureset()
        if featureSet == "dx9":
            # DX9 hardware without floating point render targets
            sceneServer.setrenderpathfilename("data:shaders/dx9_renderpath.xml")
        elif featureSet == "dx9flt":
            # DX9 hardware with floating point render targets,
            # use HDR render path
            sceneServer.setrenderpathfilename("data:shaders/dx9hdr_renderpath.xml")
        else:
            # non-DX9 hardware, use fixed function render path
            sceneServer.setrenderpathfilename("data:shaders/dx7_renderpath.xml")
    else:
        sceneServer.setrenderpathfilename("data:shaders/dx9_renderpath.xml")

    # enable zFail shadow rendering
    if nebula.exists("/sys/servers/shadow"):
        nebula.lookup("/sys/servers/shadow").setusezfail(True)
Ejemplo n.º 10
0
    def create_new_lib (self, position):
        wildcard = "Library files (*.n2)|*.n2"

        # Show file dialog
        dlg = wx.FileDialog(
            self.GetGrandParent(), 
            message="Create library", 
            wildcard=wildcard,
            style=wx.SAVE|wx.CHANGE_DIR|wx.OVERWRITE_PROMPT, 
            pos=position
            )

        # get the selected file
        if dlg.ShowModal() == wx.ID_OK:
            root = app.get_libraries()
            new_library_path = root.getfullname() + "/" + dlg.GetFilename()
            new_library_path, ext = os.path.splitext(new_library_path)

            # test extension
            if ext != ".n2":
                cjr.show_error_message(
                    "Bad extension: must be .n2. Try again."
                )
            else:
                # create object and save to disk
                save = True

                if pynebula.exists(str(new_library_path)):
                    dlg2_result = cjr.warn_yes_no(
                                "You are using a library with the same name."\
                                "\n\n Are you sure you want to delete it?"
                                )

                    if dlg2_result == wx.ID_NO:
                        save = False
                    else:
                        pynebula.delete( str(new_library_path) )

                if save:
                    library = pynebula.new("nstringlist", new_library_path)
                    path_string = str( dlg.GetPath() )
                    library.saveas(path_string)
                    foo, lib_name = os.path.split(new_library_path)
                    self.files[lib_name] = [path_string, False]
                    self.expand_tree(new_library_path.replace('/editor/',''))

        dlg.Destroy()
Ejemplo n.º 11
0
    def on_delete_stream(self, event):
        """Delete geometry stream"""
        # Ask for the stream name
        if not pynebula.exists(str("/usr/streams")):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(self.get_frame(), nodelibdlg.DELETE,
                                       'stream', 'Stream', "/usr/streams")
        ok_to_continue = dlg.ShowModal() == wx.ID_OK
        if ok_to_continue:
            msg = "Delete stream '%s'?" % dlg.get_guiname()
            delete = cjr.warn_yes_no(self.get_frame(), msg)
            if delete == wx.ID_YES:
                # Delete the stream
                app.get_state("geometrystream").deletestream(
                    str(dlg.get_guiname()))
        dlg.Destroy()
Ejemplo n.º 12
0
 def on_open_area(self, event):
     """Open loading area"""
     # Ask for the area name
     if pynebula.exists(str("/usr/areas")):
         dlg = nodelibdlg.NodeLibDialog(self.get_frame(), nodelibdlg.OPEN,
                                        'area', 'Area', "/usr/areas")
         if dlg.ShowModal() == wx.ID_OK:
             # Check that's an existing area
             if not dlg.node_exists():
                 msg = "There is no area called '%s'" % dlg.get_guiname()
                 cjr.show_error_message(msg)
             else:
                 # open the area for edition
                 win = objdlg.create_window(wx.GetApp().GetTopWindow(),
                                            dlg.get_node().getfullname())
                 win.display()
         dlg.Destroy()
Ejemplo n.º 13
0
    def create_new_lib(self, position):
        wildcard = "Library files (*.n2)|*.n2"

        # Show file dialog
        dlg = wx.FileDialog(self.GetGrandParent(),
                            message="Create library",
                            wildcard=wildcard,
                            style=wx.SAVE | wx.CHANGE_DIR
                            | wx.OVERWRITE_PROMPT,
                            pos=position)

        # get the selected file
        if dlg.ShowModal() == wx.ID_OK:
            root = app.get_libraries()
            new_library_path = root.getfullname() + "/" + dlg.GetFilename()
            new_library_path, ext = os.path.splitext(new_library_path)

            # test extension
            if ext != ".n2":
                cjr.show_error_message(
                    "Bad extension: must be .n2. Try again.")
            else:
                # create object and save to disk
                save = True

                if pynebula.exists(str(new_library_path)):
                    dlg2_result = cjr.warn_yes_no(
                                "You are using a library with the same name."\
                                "\n\n Are you sure you want to delete it?"
                                )

                    if dlg2_result == wx.ID_NO:
                        save = False
                    else:
                        pynebula.delete(str(new_library_path))

                if save:
                    library = pynebula.new("nstringlist", new_library_path)
                    path_string = str(dlg.GetPath())
                    library.saveas(path_string)
                    foo, lib_name = os.path.split(new_library_path)
                    self.files[lib_name] = [path_string, False]
                    self.expand_tree(new_library_path.replace('/editor/', ''))

        dlg.Destroy()
Ejemplo n.º 14
0
    def load (self, file_path):
        if os.path.exists(file_path):
            root = app.get_libraries()
            kernel = servers.get_kernel_server()
    
            # get file name without extension
            foo, file_name = os.path.split(file_path)
            file_name, ext = os.path.splitext(file_name)
    
            # load new library into memory
            new_library_path = root.getfullname() + "/" + file_name
            if not pynebula.exists(new_library_path):
                kernel.loadas(str(file_path), str(new_library_path))
                        
            self.files[file_name] = [file_path, False]
            return new_library_path

        return ''
Ejemplo n.º 15
0
    def load(self, file_path):
        if os.path.exists(file_path):
            root = app.get_libraries()
            kernel = servers.get_kernel_server()

            # get file name without extension
            foo, file_name = os.path.split(file_path)
            file_name, ext = os.path.splitext(file_name)

            # load new library into memory
            new_library_path = root.getfullname() + "/" + file_name
            if not pynebula.exists(new_library_path):
                kernel.loadas(str(file_path), str(new_library_path))

            self.files[file_name] = [file_path, False]
            return new_library_path

        return ''
Ejemplo n.º 16
0
    def on_open_stream(self, event):
        """Open geometry stream"""
        # Ask for the stream name
        if not pynebula.exists(str("/usr/streams")):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(self.get_frame(), nodelibdlg.OPEN,
                                       'stream', 'Stream', "/usr/streams")
        if dlg.ShowModal() == wx.ID_OK:
            # Check that's an existing stream
            if not dlg.node_exists():
                msg = "There is no stream called '%s'" % dlg.get_guiname()
                cjr.show_error_message(msg)
            else:
                # open the stream for editing
                win = objdlg.create_window(wx.GetApp().GetTopWindow(),
                                           dlg.get_node().getfullname())
                win.display()
        dlg.Destroy()
Ejemplo n.º 17
0
    def on_remove_stream(self, event):
        """Remove geometry stream"""
        if not pynebula.exists(str("/usr/streams")):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(self.get_frame(), nodelibdlg.OPEN,
                                       'stream', 'Stream', "/usr/streams")
        if dlg.ShowModal() == wx.ID_OK:
            # Check that's an existing stream
            if not dlg.node_exists():
                msg = "There is no stream called '%s'" % dlg.get_guiname()
                cjr.show_error_message(msg)
            else:
                # remove the stream
                dlg2 = waitdlg.WaitDialog(
                    self.get_frame(),
                    "Removing stream '%s' ..." % dlg.get_guiname())
                dlg.get_node().removestream()
                dlg2.Destroy()
        dlg.Destroy()
Ejemplo n.º 18
0
    def on_create_stream(self, event):
        """Create geometry stream"""
        # Ask for the new stream name
        if not pynebula.exists(str("/usr/streams")):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(self.get_frame(), nodelibdlg.NEW,
                                       'stream', 'Stream', "/usr/streams")
        if dlg.ShowModal() == wx.ID_OK:
            # Check that's a new stream name
            if dlg.node_exists():
                msg = "There's already a stream named"
                msg = msg + " '" + dlg.get_guiname() + "'.\n"
                msg = msg + "You should enter a new stream name."
                cjr.show_error_message(msg)
            else:
                # create the new stream
                obj = app.get_state("geometrystream").createstream(
                    str(dlg.get_guiname()))
                win = objdlg.create_window(wx.GetApp().GetTopWindow(),
                                           obj.getfullname())
                win.display()
        dlg.Destroy()
Ejemplo n.º 19
0
    def on_delete_stream(self, event):
        """Delete geometry stream"""
        # Ask for the stream name
        if not pynebula.exists( str("/usr/streams") ):
            app.get_state("geometrystream").loadstreamlibrary()

        dlg = nodelibdlg.NodeLibDialog(
                    self.get_frame(), 
                    nodelibdlg.DELETE,
                    'stream', 
                    'Stream', 
                    "/usr/streams"
                    )
        ok_to_continue = dlg.ShowModal() == wx.ID_OK
        if ok_to_continue:
            msg = "Delete stream '%s'?" % dlg.get_guiname()
            delete = cjr.warn_yes_no( self.get_frame(), msg )
            if delete == wx.ID_YES:
                # Delete the stream
                app.get_state("geometrystream").deletestream(
                    str( dlg.get_guiname() ) 
                    )
        dlg.Destroy()
Ejemplo n.º 20
0
 def on_open_area(self, event):
     """Open loading area"""
     # Ask for the area name
     if pynebula.exists( str("/usr/areas") ):
         dlg = nodelibdlg.NodeLibDialog(
                     self.get_frame(), 
                     nodelibdlg.OPEN,
                     'area', 
                     'Area', 
                     "/usr/areas"
                     )
         if dlg.ShowModal() == wx.ID_OK:
             # Check that's an existing area
             if not dlg.node_exists():
                 msg = "There is no area called '%s'" % dlg.get_guiname()
                 cjr.show_error_message(msg)
             else:
                 # open the area for edition
                 win = objdlg.create_window(
                             wx.GetApp().GetTopWindow(), 
                             dlg.get_node().getfullname() 
                             )
                 win.display()
         dlg.Destroy()
Ejemplo n.º 21
0
 def on_save_library(self, event):
     """Save all streams"""
     # Save all streams to file
     if pynebula.exists( str("/usr/streams") ):
         app.get_state("geometrystream").savestreamlibrary()
Ejemplo n.º 22
0
 def on_save_library(self, event):
     """Save all streams"""
     # Save all streams to file
     if pynebula.exists(str("/usr/streams")):
         app.get_state("geometrystream").savestreamlibrary()
Ejemplo n.º 23
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)
        
        self.gameport = "Orochimaru"
        self.number_connections = 3
        
        self.multiplayer = False
        self.server = False
        self.searching = False
        self.network = None
        
        self.singlecheck = wx.RadioButton(
                                    self, 
                                    -1, 
                                    "Singleplayer",
                                    style = wx.RB_GROUP 
                                    )
        self.servercheck = wx.RadioButton( 
                                    self,
                                    -1, 
                                    "Multiplayer Server" 
                                    )
        self.clientcheck = wx.RadioButton( 
                                    self, 
                                    -1, 
                                    "Multiplayer Client" 
                                    )
        
        self.button_search = wx.Button( self, -1, "Start Search" )
        self.button_search.Disable()
        self.button_connect_to = wx.Button(
                                        self, 
                                        -1, 
                                        "Connect to -> ", 
                                        style = wx.BU_RIGHT
                                        )
        self.button_connect_to.Disable()
        self.hostedit = wx.TextCtrl( self, -1, "Host" )
        self.hostedit.SetValue( "127.0.0.1" )
        self.hostedit.Disable()

        self.connectbtn = []
        for i in range( self.number_connections ):
            self.connectbtn.append(
                wx.Button(
                    self,
                    -1, 
                    "Connect to < empty >"  
                    )
                )
            self.connectbtn[ i ].Disable()
            
        self.button_cancel = wx.Button( self, -1, "Cancel Search" )
        self.button_cancel.Disable()
        self.button_start = wx.Button( self, -1, "Start" )
        
        self.serverbox = wx.StaticBox( self, -1, "Normal Options" )
        self.clientbox = wx.StaticBox( self, -1, "Client options" )
        
        self.mousebox = wx.StaticBox( self, -1, "Mouse options" )
        state = app.get_state( "game" )

        self.invertbtn = wx.CheckBox( self, -1, "Invert mouse vertical" )
        
        self.invertbtn.SetValue( state.getmouseyinvert() )
        
        self.mousexslider = floatslider.FloatSlider(
            self, -1, "Sensitivity X", 1.0, 0.0, 5.0, precision=10.0
            )
        self.mousexslider.set_value( state.getmousexfactor() )
        self.mouseyslider = floatslider.FloatSlider(
            self, -1, "Sensitivity Y", 1.0, 0.0, 5.0, precision=10.0
            )
        self.mouseyslider.set_value( state.getmouseyfactor() )
        
        self.fullreloadslider = floatslider.FloatSlider(
            self, -1, "Full Reload Time", 1.0, 0.0, 5.0, precision=10.0
            )
        self.fullreloadslider.set_value( state.getfullreloadtime() )
        
        self.crossmodelabel = wx.StaticText( self, -1, "Cross Mode" )
        self.crossmodelist = wx.ComboBox( 
                                        self,
                                        -1, 
                                        "Cross Mode", 
                                        style=wx.CB_READONLY, 
                                        choices=["Never","Normal","Always"]
                                        )
        
        self.crossmodelist.Select( state.getcrossmode() )

        self.timer = wx.Timer(self)
        self.timer.Start( 1000 )

        self.__do_layout()
        self.__do_binding()
        
        self.parent = parent
        
        if pynebula.exists( "/sys/servers/network" ):
            self.singlecheck.Disable()
            self.servercheck.Disable()
            self.clientcheck.Disable()
            self.button_start.Disable()