From 73274e56c7eb177d2e36e53fbeb784282d1d17e9 Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Mon, 2 May 2022 12:09:26 +0200 Subject: [PATCH] refactor: moved ball assets to pinball_theme --- lib/game/components/controlled_ball.dart | 6 ++--- lib/game/game_assets.dart | 8 +++---- .../lib/gen/assets.gen.dart | 16 ------------- .../lib/src/components/ball.dart | 3 +-- .../lib/stories/ball/ball_booster_game.dart | 9 +++---- .../lib/stories/ball/basic_ball_game.dart | 17 +++++++------- .../assets/images/android/ball.png} | Bin .../assets/images/dash/ball.png} | Bin .../assets/images/dino/ball.png} | Bin .../assets/images/sparky/ball.png} | Bin .../lib/src/generated/assets.gen.dart | 22 ++++++++---------- .../lib/src/themes/android_theme.dart | 3 +-- .../lib/src/themes/character_theme.dart | 7 +++--- .../lib/src/themes/dash_theme.dart | 3 +-- .../lib/src/themes/dino_theme.dart | 3 +-- .../lib/src/themes/sparky_theme.dart | 3 +-- 16 files changed, 39 insertions(+), 61 deletions(-) rename packages/{pinball_components/assets/images/ball/android_ball.png => pinball_theme/assets/images/android/ball.png} (100%) rename packages/{pinball_components/assets/images/ball/dash_ball.png => pinball_theme/assets/images/dash/ball.png} (100%) rename packages/{pinball_components/assets/images/ball/dino_ball.png => pinball_theme/assets/images/dino/ball.png} (100%) rename packages/{pinball_components/assets/images/ball/sparky_ball.png => pinball_theme/assets/images/sparky/ball.png} (100%) diff --git a/lib/game/components/controlled_ball.dart b/lib/game/components/controlled_ball.dart index 4103bb81..f95290c7 100644 --- a/lib/game/components/controlled_ball.dart +++ b/lib/game/components/controlled_ball.dart @@ -17,7 +17,7 @@ class ControlledBall extends Ball with Controls { /// A [Ball] that launches from the [Plunger]. ControlledBall.launch({ required CharacterTheme characterTheme, - }) : super(baseColor: characterTheme.ballColor) { + }) : super(spriteAsset: characterTheme.ball.keyName) { controller = BallController(this); layer = Layer.launcher; zIndex = ZIndexes.ballOnLaunchRamp; @@ -28,13 +28,13 @@ class ControlledBall extends Ball with Controls { /// {@endtemplate} ControlledBall.bonus({ required CharacterTheme characterTheme, - }) : super(baseColor: characterTheme.ballColor) { + }) : super(spriteAsset: characterTheme.ball.keyName) { controller = BallController(this); zIndex = ZIndexes.ballOnBoard; } /// [Ball] used in [DebugPinballGame]. - ControlledBall.debug() : super(baseColor: const Color(0xFFFF0000)) { + ControlledBall.debug() : super() { controller = BallController(this); zIndex = ZIndexes.ballOnBoard; } diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index 0a927b04..a26d3f64 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -15,10 +15,10 @@ extension PinballGameAssetsX on PinballGame { return [ images.load(components.Assets.images.boardBackground.keyName), images.load(components.Assets.images.ball.ball.keyName), - images.load(components.Assets.images.ball.androidBall.keyName), - images.load(components.Assets.images.ball.dashBall.keyName), - images.load(components.Assets.images.ball.dinoBall.keyName), - images.load(components.Assets.images.ball.sparkyBall.keyName), + images.load(androidTheme.ball.keyName), + images.load(dashTheme.ball.keyName), + images.load(dinoTheme.ball.keyName), + images.load(sparkyTheme.ball.keyName), images.load(components.Assets.images.ball.flameEffect.keyName), images.load(components.Assets.images.signpost.inactive.keyName), images.load(components.Assets.images.signpost.active1.keyName), diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index f131df5a..fa5b3647 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -66,28 +66,12 @@ class $AssetsImagesBackboardGen { class $AssetsImagesBallGen { const $AssetsImagesBallGen(); - /// File path: assets/images/ball/android_ball.png - AssetGenImage get androidBall => - const AssetGenImage('assets/images/ball/android_ball.png'); - /// File path: assets/images/ball/ball.png AssetGenImage get ball => const AssetGenImage('assets/images/ball/ball.png'); - /// File path: assets/images/ball/dash_ball.png - AssetGenImage get dashBall => - const AssetGenImage('assets/images/ball/dash_ball.png'); - - /// File path: assets/images/ball/dino_ball.png - AssetGenImage get dinoBall => - const AssetGenImage('assets/images/ball/dino_ball.png'); - /// File path: assets/images/ball/flame_effect.png AssetGenImage get flameEffect => const AssetGenImage('assets/images/ball/flame_effect.png'); - - /// File path: assets/images/ball/sparky_ball.png - AssetGenImage get sparkyBall => - const AssetGenImage('assets/images/ball/sparky_ball.png'); } class $AssetsImagesBaseboardGen { diff --git a/packages/pinball_components/lib/src/components/ball.dart b/packages/pinball_components/lib/src/components/ball.dart index 560ebb6e..99c78469 100644 --- a/packages/pinball_components/lib/src/components/ball.dart +++ b/packages/pinball_components/lib/src/components/ball.dart @@ -1,10 +1,9 @@ import 'dart:async'; import 'dart:math' as math; -import 'dart:ui'; import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; -import 'package:flutter/widgets.dart'; +import 'package:flutter/material.dart'; import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_flame/pinball_flame.dart'; diff --git a/packages/pinball_components/sandbox/lib/stories/ball/ball_booster_game.dart b/packages/pinball_components/sandbox/lib/stories/ball/ball_booster_game.dart index f4996fc6..93de7da7 100644 --- a/packages/pinball_components/sandbox/lib/stories/ball/ball_booster_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/ball/ball_booster_game.dart @@ -1,6 +1,7 @@ import 'package:flame/components.dart'; import 'package:flutter/material.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_theme/pinball_theme.dart' as theme; import 'package:sandbox/common/common.dart'; class BallBoosterGame extends LineGame { @@ -8,10 +9,10 @@ class BallBoosterGame extends LineGame { : super( imagesFileNames: [ Assets.images.ball.ball.keyName, - Assets.images.ball.androidBall.keyName, - Assets.images.ball.dashBall.keyName, - Assets.images.ball.dinoBall.keyName, - Assets.images.ball.sparkyBall.keyName, + theme.Assets.images.android.ball.keyName, + theme.Assets.images.dash.ball.keyName, + theme.Assets.images.dino.ball.keyName, + theme.Assets.images.sparky.ball.keyName, Assets.images.ball.flameEffect.keyName, ], ); diff --git a/packages/pinball_components/sandbox/lib/stories/ball/basic_ball_game.dart b/packages/pinball_components/sandbox/lib/stories/ball/basic_ball_game.dart index a0cf38b5..defaf46e 100644 --- a/packages/pinball_components/sandbox/lib/stories/ball/basic_ball_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/ball/basic_ball_game.dart @@ -1,6 +1,7 @@ import 'package:flame/input.dart'; import 'package:flutter/material.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_theme/pinball_theme.dart' as theme; import 'package:sandbox/common/common.dart'; class BallGame extends AssetsGame with TapDetector, Traceable { @@ -13,10 +14,10 @@ class BallGame extends AssetsGame with TapDetector, Traceable { }) : super( imagesFileNames: [ Assets.images.ball.ball.keyName, - Assets.images.ball.androidBall.keyName, - Assets.images.ball.dashBall.keyName, - Assets.images.ball.dinoBall.keyName, - Assets.images.ball.sparkyBall.keyName, + theme.Assets.images.android.ball.keyName, + theme.Assets.images.dash.ball.keyName, + theme.Assets.images.dino.ball.keyName, + theme.Assets.images.sparky.ball.keyName, if (imagesFileNames != null) ...imagesFileNames, ], ); @@ -28,10 +29,10 @@ class BallGame extends AssetsGame with TapDetector, Traceable { '''; static final characterBallPaths = { - 'Dash': Assets.images.ball.dashBall.keyName, - 'Sparky': Assets.images.ball.sparkyBall.keyName, - 'Android': Assets.images.ball.androidBall.keyName, - 'Dino': Assets.images.ball.dinoBall.keyName, + 'Dash': theme.Assets.images.dash.ball.keyName, + 'Sparky': theme.Assets.images.sparky.ball.keyName, + 'Android': theme.Assets.images.android.ball.keyName, + 'Dino': theme.Assets.images.dino.ball.keyName, }; final int ballPriority; diff --git a/packages/pinball_components/assets/images/ball/android_ball.png b/packages/pinball_theme/assets/images/android/ball.png similarity index 100% rename from packages/pinball_components/assets/images/ball/android_ball.png rename to packages/pinball_theme/assets/images/android/ball.png diff --git a/packages/pinball_components/assets/images/ball/dash_ball.png b/packages/pinball_theme/assets/images/dash/ball.png similarity index 100% rename from packages/pinball_components/assets/images/ball/dash_ball.png rename to packages/pinball_theme/assets/images/dash/ball.png diff --git a/packages/pinball_components/assets/images/ball/dino_ball.png b/packages/pinball_theme/assets/images/dino/ball.png similarity index 100% rename from packages/pinball_components/assets/images/ball/dino_ball.png rename to packages/pinball_theme/assets/images/dino/ball.png diff --git a/packages/pinball_components/assets/images/ball/sparky_ball.png b/packages/pinball_theme/assets/images/sparky/ball.png similarity index 100% rename from packages/pinball_components/assets/images/ball/sparky_ball.png rename to packages/pinball_theme/assets/images/sparky/ball.png diff --git a/packages/pinball_theme/lib/src/generated/assets.gen.dart b/packages/pinball_theme/lib/src/generated/assets.gen.dart index 3feeecce..545f514b 100644 --- a/packages/pinball_theme/lib/src/generated/assets.gen.dart +++ b/packages/pinball_theme/lib/src/generated/assets.gen.dart @@ -36,9 +36,9 @@ class $AssetsImagesAndroidGen { AssetGenImage get background => const AssetGenImage('assets/images/android/background.png'); - /// File path: assets/images/android/character.png - AssetGenImage get character => - const AssetGenImage('assets/images/android/character.png'); + /// File path: assets/images/android/ball.png + AssetGenImage get ball => + const AssetGenImage('assets/images/android/ball.png'); /// File path: assets/images/android/icon.png AssetGenImage get icon => @@ -60,9 +60,8 @@ class $AssetsImagesDashGen { AssetGenImage get background => const AssetGenImage('assets/images/dash/background.png'); - /// File path: assets/images/dash/character.png - AssetGenImage get character => - const AssetGenImage('assets/images/dash/character.png'); + /// File path: assets/images/dash/ball.png + AssetGenImage get ball => const AssetGenImage('assets/images/dash/ball.png'); /// File path: assets/images/dash/icon.png AssetGenImage get icon => const AssetGenImage('assets/images/dash/icon.png'); @@ -83,9 +82,8 @@ class $AssetsImagesDinoGen { AssetGenImage get background => const AssetGenImage('assets/images/dino/background.png'); - /// File path: assets/images/dino/character.png - AssetGenImage get character => - const AssetGenImage('assets/images/dino/character.png'); + /// File path: assets/images/dino/ball.png + AssetGenImage get ball => const AssetGenImage('assets/images/dino/ball.png'); /// File path: assets/images/dino/icon.png AssetGenImage get icon => const AssetGenImage('assets/images/dino/icon.png'); @@ -106,9 +104,9 @@ class $AssetsImagesSparkyGen { AssetGenImage get background => const AssetGenImage('assets/images/sparky/background.png'); - /// File path: assets/images/sparky/character.png - AssetGenImage get character => - const AssetGenImage('assets/images/sparky/character.png'); + /// File path: assets/images/sparky/ball.png + AssetGenImage get ball => + const AssetGenImage('assets/images/sparky/ball.png'); /// File path: assets/images/sparky/icon.png AssetGenImage get icon => diff --git a/packages/pinball_theme/lib/src/themes/android_theme.dart b/packages/pinball_theme/lib/src/themes/android_theme.dart index 8989c717..6e7d76b2 100644 --- a/packages/pinball_theme/lib/src/themes/android_theme.dart +++ b/packages/pinball_theme/lib/src/themes/android_theme.dart @@ -1,4 +1,3 @@ -import 'package:flutter/material.dart'; import 'package:pinball_theme/pinball_theme.dart'; /// {@template android_theme} @@ -12,7 +11,7 @@ class AndroidTheme extends CharacterTheme { String get name => 'Android'; @override - Color get ballColor => Colors.green; + AssetGenImage get ball => Assets.images.android.ball; @override AssetGenImage get background => Assets.images.android.background; diff --git a/packages/pinball_theme/lib/src/themes/character_theme.dart b/packages/pinball_theme/lib/src/themes/character_theme.dart index 072c917f..596f41a0 100644 --- a/packages/pinball_theme/lib/src/themes/character_theme.dart +++ b/packages/pinball_theme/lib/src/themes/character_theme.dart @@ -1,5 +1,4 @@ import 'package:equatable/equatable.dart'; -import 'package:flutter/material.dart'; import 'package:pinball_theme/pinball_theme.dart'; /// {@template character_theme} @@ -15,8 +14,8 @@ abstract class CharacterTheme extends Equatable { /// Name of character. String get name; - /// Ball color for this theme. - Color get ballColor; + /// Asset for the ball. + AssetGenImage get ball; /// Asset for the background. AssetGenImage get background; @@ -33,7 +32,7 @@ abstract class CharacterTheme extends Equatable { @override List get props => [ name, - ballColor, + ball, background, icon, leaderboardIcon, diff --git a/packages/pinball_theme/lib/src/themes/dash_theme.dart b/packages/pinball_theme/lib/src/themes/dash_theme.dart index 7584c8ed..be3a8873 100644 --- a/packages/pinball_theme/lib/src/themes/dash_theme.dart +++ b/packages/pinball_theme/lib/src/themes/dash_theme.dart @@ -1,4 +1,3 @@ -import 'package:flutter/material.dart'; import 'package:pinball_theme/pinball_theme.dart'; /// {@template dash_theme} @@ -12,7 +11,7 @@ class DashTheme extends CharacterTheme { String get name => 'Dash'; @override - Color get ballColor => Colors.blue; + AssetGenImage get ball => Assets.images.dash.ball; @override AssetGenImage get background => Assets.images.dash.background; diff --git a/packages/pinball_theme/lib/src/themes/dino_theme.dart b/packages/pinball_theme/lib/src/themes/dino_theme.dart index 3baf466c..1de42d41 100644 --- a/packages/pinball_theme/lib/src/themes/dino_theme.dart +++ b/packages/pinball_theme/lib/src/themes/dino_theme.dart @@ -1,4 +1,3 @@ -import 'package:flutter/material.dart'; import 'package:pinball_theme/pinball_theme.dart'; /// {@template dino_theme} @@ -12,7 +11,7 @@ class DinoTheme extends CharacterTheme { String get name => 'Dino'; @override - Color get ballColor => Colors.grey; + AssetGenImage get ball => Assets.images.dino.ball; @override AssetGenImage get background => Assets.images.dino.background; diff --git a/packages/pinball_theme/lib/src/themes/sparky_theme.dart b/packages/pinball_theme/lib/src/themes/sparky_theme.dart index 7884a22f..1699f3ae 100644 --- a/packages/pinball_theme/lib/src/themes/sparky_theme.dart +++ b/packages/pinball_theme/lib/src/themes/sparky_theme.dart @@ -1,4 +1,3 @@ -import 'package:flutter/material.dart'; import 'package:pinball_theme/pinball_theme.dart'; /// {@template sparky_theme} @@ -9,7 +8,7 @@ class SparkyTheme extends CharacterTheme { const SparkyTheme(); @override - Color get ballColor => Colors.orange; + AssetGenImage get ball => Assets.images.sparky.ball; @override String get name => 'Sparky';