1 using System.Collections.Generic;
13 readonly List<TEntity> _buffer;
14 string _toStringCache;
18 _buffer =
new List<TEntity>();
22 _collector = collector;
23 _buffer =
new List<TEntity>();
30 protected abstract bool Filter(TEntity entity);
32 protected abstract void Execute(List<TEntity> entities);
38 _collector.Activate();
46 _collector.Deactivate();
51 _collector.ClearCollectedEntities();
57 if(_collector.collectedEntities.Count != 0) {
58 foreach(var e
in _collector.collectedEntities) {
65 _collector.ClearCollectedEntities();
67 if(_buffer.Count != 0) {
69 for(
int i = 0; i < _buffer.Count; i++) {
70 _buffer[i].Release(
this);
77 public override string ToString() {
78 if(_toStringCache == null) {
79 _toStringCache =
"ReactiveSystem(" + GetType().Name +
")";
82 return _toStringCache;
abstract Collector< TEntity > GetTrigger(IContext< TEntity > context)
Specify the collector that will trigger the ReactiveSystem.
void Clear()
Clears all accumulated changes.
abstract bool Filter(TEntity entity)
This will exclude all entities which don't pass the filter.