flush method

void flush(
  1. World world
)

Implementation

void flush(World world) {
  if (isEmpty) return;

  for (final components in _createEntities) {
    world.createEntityWith(components);
  }

  for (final cmd in _commands) {
    if (_removeCount > 0 && _removedEntities.contains(cmd.entity)) continue;
    switch (cmd) {
      case _AddComponent(component: final component):
        world.addComponent(cmd.entity, component);
        break;
      case _RemoveComponent(componentType: final componentType):
        world.removeComponentByType(cmd.entity, componentType);
        break;
      case _AddComponents(components: final components):
        world.addComponents(cmd.entity, components);
        break;
      case _RemoveComponents(componentTypes: final componentTypes):
        world.removeComponents(cmd.entity, components: componentTypes);
        break;
    }
  }

  if (_removeCount != 0) {
    world.removeEntities(_removedEntities);
  }

  clear();
}