addComponents method

  1. @override
void addComponents(
  1. Entity entity,
  2. Iterable<Component> components
)
override

Implementation

@override
void addComponents(Entity entity, Iterable<Component> components) {
  for (var component in components) {
    final factory = _componentArrayFactories[component.runtimeType];
    if (factory == null) {
      throw ArgumentError(
          'No factory found for component type ${component.runtimeType}');
    }
    final componentType = component.runtimeType;
    final previousComponent = _componentArrays[componentType]?[entity];
    _componentArrays[componentType]?[entity] = component;
    if (previousComponent != null) {
      onComponentReplaced(entity, previousComponent, component);
    } else {
      onComponentAdded(entity, component);
    }
  }
}