diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index a1988eda..1cd4f194 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -1,11 +1,17 @@ import 'package:pinball/game/game.dart'; import 'package:pinball/gen/assets.gen.dart'; import 'package:pinball_components/pinball_components.dart' as components; +import 'package:pinball_theme/pinball_theme.dart' hide Assets; /// Add methods to help loading and caching game assets. extension PinballGameAssetsX on PinballGame { /// Returns a list of assets to be loaded List preLoadAssets() { + const dashTheme = DashTheme(); + const sparkyTheme = SparkyTheme(); + const androidTheme = AndroidTheme(); + const dinoTheme = DinoTheme(); + return [ images.load(components.Assets.images.ball.ball.keyName), images.load(components.Assets.images.ball.flameEffect.keyName), @@ -93,6 +99,10 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.googleWord.letter5.keyName), images.load(components.Assets.images.googleWord.letter6.keyName), images.load(components.Assets.images.backboard.display.keyName), + images.load(dashTheme.leaderboardIcon.keyName), + images.load(sparkyTheme.leaderboardIcon.keyName), + images.load(androidTheme.leaderboardIcon.keyName), + images.load(dinoTheme.leaderboardIcon.keyName), images.load(Assets.images.components.background.path), ]; } diff --git a/packages/pinball_components/lib/src/components/backboard/backboard_game_over.dart b/packages/pinball_components/lib/src/components/backboard/backboard_game_over.dart index 71e4a622..cfea0bc6 100644 --- a/packages/pinball_components/lib/src/components/backboard/backboard_game_over.dart +++ b/packages/pinball_components/lib/src/components/backboard/backboard_game_over.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'dart:math'; -import 'package:flame/assets.dart'; import 'package:flame/components.dart'; import 'package:flutter/services.dart'; import 'package:pinball_components/pinball_components.dart'; @@ -125,7 +124,7 @@ class _ScoreTextComponent extends TextComponent { ); } -class _CharacterIconSpriteComponent extends SpriteComponent { +class _CharacterIconSpriteComponent extends SpriteComponent with HasGameRef { _CharacterIconSpriteComponent(String characterIconPath) : _characterIconPath = characterIconPath, super( @@ -138,10 +137,7 @@ class _CharacterIconSpriteComponent extends SpriteComponent { @override Future onLoad() async { await super.onLoad(); - final sprite = await Sprite.load( - _characterIconPath, - images: Images(prefix: ''), - ); + final sprite = Sprite(gameRef.images.fromCache(_characterIconPath)); this.sprite = sprite; size = sprite.originalSize / 10; } diff --git a/packages/pinball_components/sandbox/lib/stories/backboard/backboard_game_over_game.dart b/packages/pinball_components/sandbox/lib/stories/backboard/backboard_game_over_game.dart index 7484e86d..691b1656 100644 --- a/packages/pinball_components/sandbox/lib/stories/backboard/backboard_game_over_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/backboard/backboard_game_over_game.dart @@ -16,7 +16,7 @@ class BackboardGameOverGame extends BasicKeyboardGame { final int score; final String character; - final characterIconPaths = { + static final characterIconPaths = { 'Dash': Assets.images.dash.leaderboardIcon.keyName, 'Sparky': Assets.images.sparky.leaderboardIcon.keyName, 'Android': Assets.images.android.leaderboardIcon.keyName, @@ -29,6 +29,8 @@ class BackboardGameOverGame extends BasicKeyboardGame { ..followVector2(Vector2.zero()) ..zoom = 5; + await images.loadAll(characterIconPaths.values.toList()); + await add( Backboard.gameOver( position: Vector2(0, 20), diff --git a/packages/pinball_components/sandbox/lib/stories/backboard/stories.dart b/packages/pinball_components/sandbox/lib/stories/backboard/stories.dart index e64667a8..cc05ba4f 100644 --- a/packages/pinball_components/sandbox/lib/stories/backboard/stories.dart +++ b/packages/pinball_components/sandbox/lib/stories/backboard/stories.dart @@ -5,7 +5,6 @@ import 'package:sandbox/stories/backboard/backboard_game_over_game.dart'; import 'package:sandbox/stories/backboard/backboard_waiting_game.dart'; void addBackboardStories(Dashbook dashbook) { - final characters = ['Dash', 'Sparky', 'Android', 'Dino']; dashbook.storiesOf('Backboard') ..add( 'Waiting mode', @@ -22,8 +21,8 @@ void addBackboardStories(Dashbook dashbook) { context.numberProperty('Score', 9000000000).toInt(), context.listProperty( 'Character', - characters.first, - characters, + BackboardGameOverGame.characterIconPaths.keys.first, + BackboardGameOverGame.characterIconPaths.keys.toList(), ), ), ),