diff --git a/packages/pinball_components/lib/src/components/google_letter.dart b/packages/pinball_components/lib/src/components/google_letter.dart index 1cdbd112..1c63f7ff 100644 --- a/packages/pinball_components/lib/src/components/google_letter.dart +++ b/packages/pinball_components/lib/src/components/google_letter.dart @@ -1,6 +1,5 @@ import 'package:flame/components.dart'; import 'package:flame_bloc/flame_bloc.dart'; -import 'package:flutter/material.dart'; import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_flame/pinball_flame.dart'; @@ -12,31 +11,12 @@ enum GoogleLetterSpriteState { /// {@template google_letter} /// Circular decal that represents a letter in "GOOGLE" for a given index. /// {@endtemplate} -class GoogleLetter extends PositionComponent { +class GoogleLetter extends SpriteGroupComponent + with HasGameRef, FlameBlocListenable { /// {@macro google_letter} GoogleLetter(int index) - : super( - children: [ - GoogleLetterSpriteGroupComponent( - litAssetPath: _spritePaths[index][GoogleLetterSpriteState.lit]!, - dimmedAssetPath: _spritePaths[index] - [GoogleLetterSpriteState.dimmed]!, - index: index, - ), - ], - ); -} - -@visibleForTesting -class GoogleLetterSpriteGroupComponent - extends SpriteGroupComponent - with HasGameRef, FlameBlocListenable { - GoogleLetterSpriteGroupComponent({ - required String litAssetPath, - required String dimmedAssetPath, - required int index, - }) : _litAssetPath = litAssetPath, - _dimmedAssetPath = dimmedAssetPath, + : _litAssetPath = _spritePaths[index][GoogleLetterSpriteState.lit]!, + _dimmedAssetPath = _spritePaths[index][GoogleLetterSpriteState.dimmed]!, _index = index, super(anchor: Anchor.center); diff --git a/packages/pinball_components/test/src/components/google_letter_test.dart b/packages/pinball_components/test/src/components/google_letter_test.dart index 205c2a11..0fe7a872 100644 --- a/packages/pinball_components/test/src/components/google_letter_test.dart +++ b/packages/pinball_components/test/src/components/google_letter_test.dart @@ -107,7 +107,7 @@ void main() { expect(() => GoogleLetter(6), throwsA(isA())); }); - group('GoogleLetterSpriteGroupComponent', () { + group('sprite', () { const firstLetterLitState = GoogleWordState( letterSpriteStates: { 0: GoogleLetterSpriteState.lit, @@ -125,11 +125,8 @@ void main() { final googleLetter = GoogleLetter(0); await game.pump(googleLetter); - final googleLetterSpriteGroup = - googleLetter.firstChild()!; - expect( - googleLetterSpriteGroup.listenWhen( + googleLetter.listenWhen( GoogleWordState.initial(), firstLetterLitState, ), @@ -144,14 +141,12 @@ void main() { final googleLetter = GoogleLetter(0); await game.pump(googleLetter); - final googleLetterSpriteGroup = - googleLetter.firstChild()!; - final originalSprite = googleLetterSpriteGroup.current; + final originalSprite = googleLetter.current; - googleLetterSpriteGroup.onNewState(firstLetterLitState); + googleLetter.onNewState(firstLetterLitState); await game.ready(); - final newSprite = googleLetterSpriteGroup.current; + final newSprite = googleLetter.current; expect(newSprite != originalSprite, isTrue); }, );