diff --git a/packages/pinball_components/lib/src/components/baseboard.dart b/packages/pinball_components/lib/src/components/baseboard.dart index 0a6bcc91..88a9819f 100644 --- a/packages/pinball_components/lib/src/components/baseboard.dart +++ b/packages/pinball_components/lib/src/components/baseboard.dart @@ -82,23 +82,8 @@ class Baseboard extends BodyComponent with InitialPosition { @override Future onLoad() async { await super.onLoad(); - - final sprite = await gameRef.loadSprite( - (_side.isLeft) - ? Assets.images.baseboard.left.keyName - : Assets.images.baseboard.right.keyName, - ); - - await add( - SpriteComponent( - sprite: sprite, - size: Vector2(27.5, 17.9), - anchor: Anchor.center, - position: Vector2(_side.isLeft ? 0.4 : -0.4, 0), - ), - ); - renderBody = false; + await add(_BaseboardSprite(side: _side)); } @override @@ -115,3 +100,25 @@ class Baseboard extends BodyComponent with InitialPosition { return body; } } + +class _BaseboardSprite extends SpriteComponent with HasGameRef { + _BaseboardSprite({ + required BoardSide side, + }) : _side = side; + + final BoardSide _side; + + @override + Future onLoad() async { + await super.onLoad(); + final sprite = await gameRef.loadSprite( + (_side.isLeft) + ? Assets.images.baseboard.left.keyName + : Assets.images.baseboard.right.keyName, + ); + this.sprite = sprite; + size = sprite.originalSize / 10; + position = Vector2(0.4 * -_side.direction, 0); + anchor = Anchor.center; + } +}