Package: panda3d-frame
FRAMENOTE:This is currently heavily work in progress and is not intended for productive use yet.The FRee Adaptable Modular Editor for Panda3D.This application gives home to multiple editors like a scene editor, gui editor and many others to come. It will automatically embed installed and supported editors.Once editors are installed on your system, they will appear in FRAME and can be selected from the left sidebar. They will work the same as if run standalone.Editors can be installed and updated directly from within FRAME using the Store page.Installation/PreparationCurrently the FRAME editor doesn't have an installer yet. Running from source only requires 3 steps though.Download the sorcecode hosted here on githubrunpip install -r requirements.txtfrom within the FRAME editor folderrun FRAMEs main.py (see below)Run FRAMEInstallingTo install the editor from source, run the following:python3 setup.py install --userThis will install the application into your python site packages
Then just run it from the terminal like this:panda3d-frameFrom sourceTo run the editor directly from source, callpython3 -m panda3d_frame.__init__from within the FRAME editor folder.Dependent on your installation of python, the call may differ slightly with for example leaving out the 3 at the end of python3 or adding .exe for running on windows.Official EditorsOfficial editors of the FRAME can be installed through the FRAMES editor store page. Currently those include the following:Scene Editorhttps://github.com/fireclawthefox/SceneEditorGUI Designerhttps://github.com/fireclawthefox/DirectGuiDesignerLogic Editorhttps://github.com/fireclawthefox/NodeEditorCustom EditorsIn addition to the editors installable through the FRAME itself, custom editors can be created and easily be added.Writing a custom editorA template for an editor can be found in the sources templates/Editor/ folder.
The python file fouund in that template folder will be the main entry point class of your editor and contains all methods that will be used by the FRAME. If your editor doesn't make use of some of the methods, just leave them as they are but don't remove them. A description of what each function is used for can be found in the source.After creating an editor, you can include it in the FRAME by creating a new editor definition file. A definition template is also located in the template folder mentioned above. Currently it consists of the following entriesTagDescriptionnameThe visible name of your editormoduleModule name from where to import your editor (e.g. thex.ypart offrom x.y import EditorclassClass name to import from the module of youur editor (e.g. theEditorpart offrom x.y import EditorconfigToEnableThe name users can set in the editors config to enable/disable the editor. This should start with "frame-enable-"orderAn integer value to set the order of the editor in the editor selection panel of the FRAME.iconAn icon name or path relative to the location of the definition json filefileExtensionNot yet used, but should contain the file extension used by the files saved by this editorextraArgsFuncA function name to be called from the class given in the class tag (example callEditor.myExtraArgsFunc()). This method should return what will be passed as arguments when instantiating the editorextraArgsA json list. Each list entry will be passed as a parameter when instantiating the editor class