moveToPosition method

Future<List<Vector2>> moveToPosition(
  1. Vector2 position, {
  2. List<GameComponent>? ignoreCollisions,
  3. VoidCallback? onFinish,
})

Moves the component to position using A* path finding.

Implementation

Future<List<Vector2>> moveToPosition(
  Vector2 position, {
  List<GameComponent>? ignoreCollisions,
  VoidCallback? onFinish,
}) async {
  if (!_comp.hasGameRef) {
    return Future.value([]);
  }

  if (onFinish != null) {
    _onFinishCallbacks.add(onFinish);
  }
  _currentIndex = 0;
  _removeLinePathComponent();

  _currentPath = await Future.microtask(
    () => getPathToPosition(
      position,
      ignoreCollisions: ignoreCollisions,
    ),
  );
  _addLinePathComponent();

  return _currentPath;
}