EntityProcessingSystem abstract class
A typical entity system. Use this when you need to process entities possessing the provided component types.
abstract class EntityProcessingSystem extends EntitySystem { /** * Create a new [EntityProcessingSystem]. It requires at least one component. */ EntityProcessingSystem(Aspect aspect) : super(aspect); /** * Process a [entity] this system is interested in. */ void processEntity(Entity entity); void processEntities(ReadOnlyBag<Entity> entities) => entities.forEach((entity) => processEntity(entity)); bool checkProcessing() => true; }
Extends
EntitySystem > EntityProcessingSystem
Subclasses
System_Animator, System_Audio, System_EntityState
Constructors
new EntityProcessingSystem(Aspect aspect) #
Create a new EntityProcessingSystem. It requires at least one component.
EntityProcessingSystem(Aspect aspect) : super(aspect);
Properties
Methods
void begin() #
Called before processing of entities begins.
void begin() {}
bool checkProcessing() #
Returns true if the system should be processed, false if not.
bool checkProcessing() => true;
void deleted(Entity e) #
void deleted(Entity e) { if (_contains(e)) { _removeFromSystem(e); } }
void disabled(Entity e) #
void disabled(Entity e) { if (_contains(e)) { _removeFromSystem(e); } }
void end() #
Called after the processing of entities ends.
void end() {}
void initialize() #
Override to implement code that gets executed when systems are initialized.
void initialize() {}
void inserted(Entity entity) #
Called if the system has received an entity it is interested in, e.g. created or a component was added to it.
void inserted(Entity entity) {}
void process() #
This is the only method that is supposed to be called from outside the library,
void process() { if(checkProcessing()) { begin(); processEntities(_actives.readOnly); end(); } }
void processEntities(ReadOnlyBag<Entity> entities) #
Any implementing entity system must implement this method and the logic to process the given entities of the system.
void processEntities(ReadOnlyBag<Entity> entities) => entities.forEach((entity) => processEntity(entity));
void removed(Entity entity) #
Called if an entity was removed from this system, e.g. deleted or had one of it's components removed.
void removed(Entity entity) {}