System_Animator class
class System_Animator extends EntityProcessingSystem { ComponentMapper<Animatable> _animatableMapper; double _tickTime = 0.0; System_Animator() : super(Aspect.getAspectForAllOf([Animatable])); void initialize(){ _animatableMapper = new ComponentMapper<Animatable>(Animatable, world); } void begin() { _tickTime += world.delta; //if (_tickTime < 10000) print("_tickTime ${_tickTime}"); } void processEntity(Entity entity) { var animatable = _animatableMapper.get(entity); animatable.l.iterateAndUpdate((anim) { if (anim._t0 < 0) { anim._t0 = _tickTime; anim.onBegin(entity, _tickTime, anim._t0); } var cont = (anim._t0 <= _tickTime)? anim.onTick(entity, _tickTime, anim._t0) : true; if (!cont) { anim.onEnd(entity, _tickTime, anim._t0); } return cont ? anim : anim.next; }); } }
Extends
EntitySystem > EntityProcessingSystem > System_Animator
Constructors
new System_Animator() #
System_Animator() : super(Aspect.getAspectForAllOf([Animatable]));
Properties
Methods
void begin() #
Called before processing of entities begins.
docs inherited from EntitySystem
void begin() { _tickTime += world.delta; //if (_tickTime < 10000) print("_tickTime ${_tickTime}"); }
bool checkProcessing() #
inherited from EntityProcessingSystem
Returns true if the system should be processed, false if not.
docs inherited from EntitySystem
bool checkProcessing() => true;
void deleted(Entity e) #
inherited from EntitySystem
void deleted(Entity e) { if (_contains(e)) { _removeFromSystem(e); } }
void disabled(Entity e) #
inherited from EntitySystem
void disabled(Entity e) { if (_contains(e)) { _removeFromSystem(e); } }
void end() #
inherited from EntitySystem
Called after the processing of entities ends.
void end() {}
void initialize() #
Override to implement code that gets executed when systems are initialized.
docs inherited from EntitySystem
void initialize(){ _animatableMapper = new ComponentMapper<Animatable>(Animatable, world); }
void inserted(Entity entity) #
inherited from EntitySystem
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() #
inherited from EntitySystem
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) #
inherited from EntityProcessingSystem
Any implementing entity system must implement this method and the logic to process the given entities of the system.
docs inherited from EntitySystem
void processEntities(ReadOnlyBag<Entity> entities) => entities.forEach((entity) => processEntity(entity));
void processEntity(Entity entity) #
Process a entity this system is interested in.
docs inherited from EntityProcessingSystem
void processEntity(Entity entity) { var animatable = _animatableMapper.get(entity); animatable.l.iterateAndUpdate((anim) { if (anim._t0 < 0) { anim._t0 = _tickTime; anim.onBegin(entity, _tickTime, anim._t0); } var cont = (anim._t0 <= _tickTime)? anim.onTick(entity, _tickTime, anim._t0) : true; if (!cont) { anim.onEnd(entity, _tickTime, anim._t0); } return cont ? anim : anim.next; }); }
void removed(Entity entity) #
inherited from EntitySystem
Called if an entity was removed from this system, e.g. deleted or had one of it's components removed.
void removed(Entity entity) {}