Open frengels opened 5 years ago
The job "queries" can be better specified as "constraints" and "actions". Constraints allow you to select your appropriate entities or groups based on specified constraints, typically yielding a list. And an action will typically be a single object which can be invoked like a callable.
Ok so my ideas for systems have come a long way. A few ground rules to clear.
Within a job there will be an update method. This method does all the operations with the requested information. This is required because in the future when plugins are supported we'd only want one virtual call per job rather than once per entity for each job. Any operations on groups within the update function must happen immediately. So the list of groups must have been acquired before we go into the update call.
Now about concepts for primitives. Some primitives require no help, such as
read/write
. Others could need to store some state to apply later (erase operations applying after iteration).current tasks:
Identifier
concept, this only implements::id<T>()
and ::contains<T>()
DynamicIdentifier
can have new component types registered