addComp<C extends Comp<T>> method

E addComp<C extends Comp<T>>(
  1. C component
)

Adds component as a new top-level component.

Implementation

E addComp<C extends Comp<T>>(C component) {
  emit(EventCompAdding(app, entity, component));

  if (!_doOnBeforeCompAdd(component)) {
    emit(EventCompAddCancelled(app, entity, component));
    return self;
  }

  if (!component._doOnBeforeAdd(self)) {
    emit(EventCompAddCancelled(app, entity, component));
    return self;
  }

  component.parent = self;
  _doOnComponentParentSet(component);

  _doOnCompAdd(component);
  if (!component.isClone) component._doAdd(self);

  _components.add(component);

  component._doOnAfterAdd(self);
  _doOnAfterCompAdd(component);
  emit(EventCompAdded(app, entity, component));
  return self;
}