addSystem<S extends AppSystem<T>> method

void addSystem<S extends AppSystem<T>>(
  1. S system
)

Implementation

void addSystem<S extends AppSystem<T>>(S system) {
  emit(EventAppSystemAdding(app, system));

  if (!_doOnBeforeAppSystemAdd(system)) {
    emit(EventAppSystemAddCancelled(app, system));
    return;
  }

  if (!system._doOnBeforeAdd(self)) {
    emit(EventAppSystemAddCancelled(app, system));
    return;
  }

  _doOnAppSystemAdd(system);
  if (!system.isClone) system._doAdd(self);

  _systems.add(system);

  system._doOnAfterAdd(self);
  _doOnAfterAppSystemAdd(system);
  emit(EventAppSystemAdded(app, system));
}