Today I worked on some of the less visual aspects of the engine. So far the editor has been working with AbstractData nodes. These nodes serialize out nicely, and can contain any amount of dynamic data. But transfering the data from them to the actual graphics system has been very tricky. So I added a new interface which all nodes implement called IDataTransfer. Basically it allows a node to explain how it would to work w/ abstract data. The interesting part here is that each node type can perform this its own way. Right now I’m just using reflection so everything just wires itself automatically, but that can be slow, so later on, I can replace the reflective system with one that has built in switches for parsing the data over. In this case, the Particle system actually doesn’t transfer data to itself, but instead transfers data to its configuration system. This lets you pick what parts of your node are configurable, and which parts will get displayed in the editors.
Here is a little picture example of the end result you can see that the configuration settings have been auto populated into the properties panel and those properties copy back when you create an instance in the scene. Thus creating the particle system you are interested in.