apply method

void apply(
  1. World world
)

Implementation

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

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

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

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

  clear();
}