PandaEditor (W.I.P) (update 03/03/2021)

Hi, here is something that I have been working on for the last 1.5 months, a level editor (open source) for Panda3d (heavily work in progress as of 26/2/2021), & sorry for the horrible demonstration the editor is much more capable of even at this stage, (it’s my laptop :nauseated_face:), anyway here it is

PandaEditor 00

To give the editor a modern & clean look I recreated about a dozen wx-python widgets from scratch using nothing but wx-python’s Wx-Window base class, let me know what you guys think about it.

Besides an asset manager, users can create programming assets and editor tools via PandaEditor’s base classes
+ PUserMod
+ PEdToolBase

A user mod is a basic python object, inherited from PUserMod, it’s public attributes can be modified via ObjectInspectionPanel, it has some convenient methods

  • OnStart
  • OnUpdate
  • OnLateUpdate
  • OnStop

Similarly an editor tool is inherited from PEdToolBase, however it is only executed in editor mode, it also has two convenient methods

  • OnEnable
  • OnUpdate

Plan to release PandaEditor is 3rd week of March 2021.

In my next demonstration (in a day or two) I will showcase usage of PUserMod and PEdToolBase.

If you like this and want to support, help me buy a new laptop.
I have setup a temporary patreon page to collect some minimum budget to buy a new laptop, I have provided some more info on this and PandaEditor in general, at here helpMeGetANewLaptop

Thanks, stay blessed and happy coding. :+1:

6 Likes

UPDATE 3rd MARCH 2021

Hi, this is second development update.
In previous update I showcased basic level editor features such as selection system, gizmos and object selection etc. This update is focused on two important aspect i.e.

  • ability to create programming assets right inside PandaEditor.
  • abject inspection panel

Screenshot of ObjectInspectionPanel

Here is a demonstration video PandaEditor 01
Pause the video to see the code.

In the first part of the video from (0 - 1:05) you can see the object inspection panel displaying attributes of a testModule including

  • vectors
  • colours
  • lists
  • choice

In this second part of the video from (0 - 05:05) you can see PModBase in action, I am using 2 modules cubeRotator and lightOrbitor for explanation purpose, I had explained PModBase briefly in my previous post, here is explanation of code show in video.

  • OnStart method
    is called only once as soon as game begins, In cubeRotator module in am using this method to search scene graph for cube object I added in edit mode, while in lightOrbitor module I am using this method to add two point lights in the scene graph.
  • OnUpdate method
    is executed every frame, behind the scenes it is using Panda3d’s taskManager, in cubeRotator module I am using this method to rotate the cube object I searched for in on-start method.
  • OnLateUpdate method
    is executed right after on-update, in lightOrbitor module, I am using this method instead of on-update, to orbit the lights around the cube based on cube’s heading, because the cube is changing it’s heading in on update method, orbiting the lights in the same method would have caused the lights to not rotate smoothly or simply jerk while orbiting, (this is something I learned while working in unity game engine)

For now I am focusing to make PandaEditor’s UI more user friendly such as docking panels, saving layouts, adding or removing panel, UI colour schemes, and making sure UI buttons work as intended, and other utilities such as setting up or reloading projects, saving scenes etc. And this will be the topic of my next update.

Let me know what you think about it, If you like this and want to support me, join this temporary patreon page to help me raise some funds to buy a new system, I have provided more info on the patreon page.

3 Likes

Of course, this is not enough for our panda. We are very much waiting for you