each3<T1 extends Component, T2 extends Component, T3 extends Component> method

Iterable<(WorldEntity, T1, T2, T3)> each3<T1 extends Component, T2 extends Component, T3 extends Component>()

Iterates (entity, T1, T2, T3) for every entity with all three.

Implementation

Iterable<(WorldEntity, T1, T2, T3)> each3<T1 extends Component,
    T2 extends Component, T3 extends Component>() sync* {
  for (final entity in query3<T1, T2, T3>()) {
    if (_readComponent<T1>(entity) case Some(value: final v1)) {
      if (_readComponent<T2>(entity) case Some(value: final v2)) {
        if (_readComponent<T3>(entity) case Some(value: final v3)) {
          yield (entity, v1, v2, v3);
        }
      }
    }
  }
}