refactor: new separated sprite components

pull/155/head
Allison Ryan 4 years ago
parent 1759ce4efe
commit b14447ec40

@ -5,13 +5,13 @@ import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_components/pinball_components.dart';
/// {@template sparky_computer} /// {@template sparky_computer}
/// A [Blueprint] which creates the [_ComputerBase] and [_ComputerTop]. /// A [Blueprint] which creates the [_ComputerBase] and [_ComputerTopSpriteComponent].
/// {@endtemplate} /// {@endtemplate}
class SparkyComputer extends Forge2DBlueprint { class SparkyComputer extends Forge2DBlueprint {
@override @override
void build(_) { void build(_) {
final computerBase = _ComputerBase(); final computerBase = _ComputerBase();
final computerTop = _ComputerTop(); final computerTop = _ComputerTopSpriteComponent();
addAll([ addAll([
computerBase, computerBase,
@ -68,28 +68,33 @@ class _ComputerBase extends BodyComponent with InitialPosition {
@override @override
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
await _loadSprite();
renderBody = false; renderBody = false;
await add(_ComputerBaseSpriteComponent());
} }
}
class _ComputerBaseSpriteComponent extends SpriteComponent with HasGameRef {
_ComputerBaseSpriteComponent()
: super(
anchor: Anchor.center,
position: Vector2(-11.95, -48.35),
);
@override
Future<void> onLoad() async {
await super.onLoad();
Future<void> _loadSprite() async {
final sprite = await gameRef.loadSprite( final sprite = await gameRef.loadSprite(
Assets.images.sparky.computer.base.keyName, Assets.images.sparky.computer.base.keyName,
); );
this.sprite = sprite;
await add( size = sprite.originalSize / 10;
SpriteComponent(
sprite: sprite,
size: sprite.originalSize / 10,
anchor: Anchor.center,
position: Vector2(-11.95, -48.35),
),
);
} }
} }
class _ComputerTop extends SpriteComponent with HasGameRef { class _ComputerTopSpriteComponent extends SpriteComponent with HasGameRef {
_ComputerTop() _ComputerTopSpriteComponent()
: super( : super(
anchor: Anchor.center, anchor: Anchor.center,
position: Vector2(-12.45, -49.75), position: Vector2(-12.45, -49.75),

Loading…
Cancel
Save