From b14447ec4005ac5fb443495e3b70bbe66894f30e Mon Sep 17 00:00:00 2001 From: Allison Ryan Date: Fri, 8 Apr 2022 10:34:01 -0500 Subject: [PATCH] refactor: new separated sprite components --- .../lib/src/components/sparky_computer.dart | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/packages/pinball_components/lib/src/components/sparky_computer.dart b/packages/pinball_components/lib/src/components/sparky_computer.dart index dc01474a..6fd94a5e 100644 --- a/packages/pinball_components/lib/src/components/sparky_computer.dart +++ b/packages/pinball_components/lib/src/components/sparky_computer.dart @@ -5,13 +5,13 @@ import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:pinball_components/pinball_components.dart'; /// {@template sparky_computer} -/// A [Blueprint] which creates the [_ComputerBase] and [_ComputerTop]. +/// A [Blueprint] which creates the [_ComputerBase] and [_ComputerTopSpriteComponent]. /// {@endtemplate} class SparkyComputer extends Forge2DBlueprint { @override void build(_) { final computerBase = _ComputerBase(); - final computerTop = _ComputerTop(); + final computerTop = _ComputerTopSpriteComponent(); addAll([ computerBase, @@ -68,28 +68,33 @@ class _ComputerBase extends BodyComponent with InitialPosition { @override Future onLoad() async { await super.onLoad(); - await _loadSprite(); renderBody = false; + + await add(_ComputerBaseSpriteComponent()); } +} + +class _ComputerBaseSpriteComponent extends SpriteComponent with HasGameRef { + _ComputerBaseSpriteComponent() + : super( + anchor: Anchor.center, + position: Vector2(-11.95, -48.35), + ); + + @override + Future onLoad() async { + await super.onLoad(); - Future _loadSprite() async { final sprite = await gameRef.loadSprite( Assets.images.sparky.computer.base.keyName, ); - - await add( - SpriteComponent( - sprite: sprite, - size: sprite.originalSize / 10, - anchor: Anchor.center, - position: Vector2(-11.95, -48.35), - ), - ); + this.sprite = sprite; + size = sprite.originalSize / 10; } } -class _ComputerTop extends SpriteComponent with HasGameRef { - _ComputerTop() +class _ComputerTopSpriteComponent extends SpriteComponent with HasGameRef { + _ComputerTopSpriteComponent() : super( anchor: Anchor.center, position: Vector2(-12.45, -49.75),