Particle System
The entity system is dynamic and allows us to make an dynamic particle system. Even new particle types can be added at runtime.
Particle Types and Particles
| Entity Type | Attribute Name | Data type | Input | Output |
| PARTICLE_TYPE | name | string | Y | N |
| PARTICLE | uuid | string | N | N |
| position | vec3 | Y | Y |
| last_position | vec3 | Y | Y |
| velocity | vec3 | Y | Y |
| roll | float | Y | Y |
| roll | float | Y | Y |
| remaining_ms | float | Y | Y |
| elapsed_ms | float | Y | Y |
| last_elapsed_ms | float | Y | Y |
| mass | float | Y | Y |
| density | float | Y | Y |
Particle Emitters
| Entity Type | Attribute Name | Data type | Input | Output |
PARTICLE_EMITTER (Base Entity Type) | name | string | Y | N |
| enabled | bool | Y | N |
| position | vec3 | Y | N |
| rate | float | Y | N |
| batch_size | int | Y | N |
| mass | float | Y | N |
| density | float | Y | N |
| PARTICLE_EMITTER_POINT | ... | string | Y | N |
| PARTICLE_EMITTER_LINE | ... | string | Y | N |
| PARTICLE_EMITTER_PLANE | ... | string | Y | N |
| PARTICLE_EMITTER_BOX | ... | string | Y | N |
| PARTICLE_EMITTER_CIRCLE | ... | string | Y | N |
| PARTICLE_EMITTER_SPHERE | ... | string | Y | N |
| PARTICLE_EMITTER_RASTER_FIELD | ... | string | Y | N |
| rows | int | Y | N |
| columns | int | Y | N |
| height | int | Y | N |
| PARTICLE_EMITTER_RAIL | ... | string | Y | N |
| REL_TO_RAIL | | | |
PARTICLE_EMITTER_FORMULA (using visual scripting it is even posible to create a dynamic formula!!!) | ... | string | Y | N |
| formula | string | Y | N |
Particle Modifiers
| Entity Type | Attribute Name | Data type | Input | Output |
PARTICLE_MODIFIER (Base Entity Type) | ... | ... | ? | ? |
| VELOCITY_TRANSFORMATION | ... | ... | ? | ? |
| VECTOR_FIELD | ... | ... | ? | ? |
| ROLLING | ... | ... | ? | ? |
| RANDOM_VELOCITY | ... | ... | ? | ? |
| MASS_SPRING_TRANSFORMATION | ... | ... | ? | ? |
| VELOCITY_DAMPER | ... | ... | ? | ? |
| WIND | ... | ... | ? | ? |
| GLOBAL_GRAVITY | ... | ... | ? | ? |
| GRAVITY_POINT | ... | ... | ? | ? |
| PULSAR | ... | ... | ? | ? |
| BLACK_HOLE | ... | ... | ? | ? |
| GEOMETRY_COLLISION | ... | ... | ? | ? |
| CULLING_BOUNDING_BOX | ... | ... | ? | ? |
| CULLING_GEOMETRY | ... | ... | ? | ? |
| DENSITY_FADE_OUT | ... | ... | ? | ? |
| PARTICLE_SUB_EMITTER_ | ... | ... | ? | ? |
Particle Renderer
| Entity Type | Attribute Name | Data type | Input | Output |
PARTICLE_RENDERER (Base Entity Type) | ... | ... | ? | ? |
| PARTICLE_RENDERER_BILLBOARD | ... | ... | ? | ? |
| PARTICLE_RENDERER_SMOKE | ... | ... | ? | ? |
| PARTICLE_RENDERER_FIRE | ... | ... | ? | ? |
| PARTICLE_RENDERER_LAVA | ... | ... | ? | ? |
| PARTICLE_RENDERER_POISION | ... | ... | ? | ? |
| PARTICLE_RENDERER_SNOW | ... | ... | ? | ? |
| PARTICLE_RENDERER_FLARES | ... | ... | ? | ? |
| PARTICLE_RENDERER_FIRE | ... | ... | ? | ? |
| PARTICLE_RENDERER_TRIANGLE | ... | ... | ? | ? |
| PARTICLE_RENDERER_QUAD | ... | ... | ? | ? |
| PARTICLE_RENDERER_RING | ... | ... | ? | ? |
| PARTICLE_RENDERER_TETRAHEDRON | ... | ... | ? | ? |
| PARTICLE_RENDERER_CUBE | ... | ... | ? | ? |
| PARTICLE_RENDERER_TUBE | ... | ... | ? | ? |
| PARTICLE_RENDERER_QUAD_TEXTURED | ... | ... | ? | ? |
| PARTICLE_RENDERER_META_BALLS | ... | ... | ? | ? |
Particle Relationships
| Relationship Type | Start Node Entity Type | End Node Entity Type |
| GET_RENDERED_BY | PARTICLE_TYPE | PARTICLE_RENDERER |
| GETS_MODIFIED_BY | PARTICLE | PARTICLE_MODIFIER |
| HAS_BEEN_CREATED_BY | PARTICLE | PARTICLE_EMITTER |
| EMITS_PARTICLES_OF_TYPE | PARTICLE_EMITTER | PARTICLE_TYPE |
| INITIALIZES_SPAWNED_PARTICLES_USING | PARTICLE_EMITTER | PARTICLE_INITIALIZERS |
| MODIFIED_PARTICLES_GETS_MODIFIED_BY | PARTICLE_EMITTER | PARTICLE_MODIFIERS |
| Relationship Type | Attribute Name | Data type | Input | Output |