asWidget method

Widget asWidget({
  1. Key? key,
  2. Anchor anchor = Anchor.topLeft,
  3. WidgetBuilder? errorBuilder,
  4. WidgetBuilder? loadingBuilder,
  5. double angle = 0,
  6. Vector2? srcPosition,
  7. Vector2? srcSize,
})

Implementation

widget.Widget asWidget({
  widget.Key? key,
  Anchor anchor = Anchor.topLeft,
  widget.WidgetBuilder? errorBuilder,
  widget.WidgetBuilder? loadingBuilder,
  double angle = 0,
  Vector2? srcPosition,
  Vector2? srcSize,
}) {
  if (this is Future) {
    return widget.FutureBuilder<Sprite>(
      key: key,
      future: this as Future<Sprite>,
      builder: (context, data) {
        if (!data.hasData) return widget.SizedBox.shrink();
        return widget.Container(
          constraints: widget.BoxConstraints(
            minWidth: data.data!.src.width,
            minHeight: data.data!.src.height,
          ),
          child: SpriteWidget(
            sprite: data.data!,
            anchor: anchor,
            errorBuilder: errorBuilder,
            loadingBuilder: loadingBuilder,
            angle: angle,
            srcPosition: srcPosition,
            srcSize: srcSize,
          ),
        );
      },
    );
  }

  return widget.Container(
    key: key,
    constraints: widget.BoxConstraints(
      minWidth: (this as Sprite).src.width,
      minHeight: (this as Sprite).src.height,
    ),
    child: SpriteWidget(
      sprite: this as Sprite,
      anchor: anchor,
      errorBuilder: errorBuilder,
      loadingBuilder: loadingBuilder,
      angle: angle,
      srcPosition: srcPosition,
      srcSize: srcSize,
    ),
  );
}