This PR adds Apecs.Experimental.Children to support one-to-many relationships. A "parent" entity may have multiple values of a particular component type. This is like how in apecs-physics an entity with a Body component value may have many collision Shape component values (where each Shape value is owned by another distinct entity), but general-purpose so that we can build this kind of relationship for any component types.
There is an example that demonstrates usage and is likely a good starting point to get a feel for what the interface is like.
I'm not totally sure this functionality belongs in the main apecs library, though I feel the internals are fiddly enough that it'd be nice saving others from reimplementing similar behavior. I'm finding the functionality useful in my projects, but I could also see the code being pushed into a new library if that's preferred.
This PR adds
Apecs.Experimental.Children
to support one-to-many relationships. A "parent" entity may have multiple values of a particular component type. This is like how inapecs-physics
an entity with aBody
component value may have many collisionShape
component values (where eachShape
value is owned by another distinct entity), but general-purpose so that we can build this kind of relationship for any component types.There is an example that demonstrates usage and is likely a good starting point to get a feel for what the interface is like.
I'm not totally sure this functionality belongs in the main
apecs
library, though I feel the internals are fiddly enough that it'd be nice saving others from reimplementing similar behavior. I'm finding the functionality useful in my projects, but I could also see the code being pushed into a new library if that's preferred.