NOTE: 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.
Currently the FRAME editor doesn't have an installer yet. Running from source only requires 3 steps though.
- Download the sorcecode hosted here on github
- run
pip install -r requirements.txt
from within the FRAME editor folder - run FRAMEs main.py (see below)
To install the editor from source, run the following:
python3 setup.py install --user
This will install the application into your python site packages
Then just run it from the terminal like this:
panda3d-frame
To run the editor directly from source, call
python3 -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 editors of the FRAME can be installed through the FRAMES editor store page. Currently those include the following:
https://github.com/fireclawthefox/SceneEditor
https://github.com/fireclawthefox/DirectGuiDesigner
https://github.com/fireclawthefox/NodeEditor
In addition to the editors installable through the FRAME itself, custom editors can be created and easily be added.
A 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 entries
Tag | Description |
---|---|
name | The visible name of your editor |
module | Module name from where to import your editor (e.g. the x.y part of from x.y import Editor |
class | Class name to import from the module of youur editor (e.g. the Editor part of from x.y import Editor |
configToEnable | The name users can set in the editors config to enable/disable the editor. This should start with "frame-enable-" |
order | An integer value to set the order of the editor in the editor selection panel of the FRAME. |
icon | An icon name or path relative to the location of the definition json file |
fileExtension | Not yet used, but should contain the file extension used by the files saved by this editor |
extraArgsFunc | A function name to be called from the class given in the class tag (example call Editor.myExtraArgsFunc() ). This method should return what will be passed as arguments when instantiating the editor |
extraArgs | A json list. Each list entry will be passed as a parameter when instantiating the editor class |