mirror of https://github.com/flutter/pinball.git
parent
f0db7c720d
commit
ca18de6172
@ -0,0 +1,19 @@
|
|||||||
|
import 'package:equatable/equatable.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
/// {@template character_theme}
|
||||||
|
/// Base class for creating character themes.
|
||||||
|
///
|
||||||
|
/// Character specific game components should have a getter specified here to
|
||||||
|
/// load their corresponding assets for the game.
|
||||||
|
/// {@endtemplate}
|
||||||
|
abstract class CharacterTheme extends Equatable {
|
||||||
|
/// {@macro character_theme}
|
||||||
|
const CharacterTheme();
|
||||||
|
|
||||||
|
/// Ball color for this theme.
|
||||||
|
Color get ballColor;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object?> get props => [];
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
export 'android_theme.dart';
|
export 'android_theme.dart';
|
||||||
|
export 'character_theme.dart';
|
||||||
export 'dash_theme.dart';
|
export 'dash_theme.dart';
|
||||||
export 'dino_theme.dart';
|
export 'dino_theme.dart';
|
||||||
export 'sparky_theme.dart';
|
export 'sparky_theme.dart';
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
// ignore_for_file: prefer_const_constructors
|
||||||
|
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:pinball_theme/pinball_theme.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
group('PinballTheme', () {
|
||||||
|
const characterTheme = SparkyTheme();
|
||||||
|
|
||||||
|
test('can be instantiated', () {
|
||||||
|
expect(PinballTheme(characterTheme: characterTheme), isNotNull);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('supports value equality', () {
|
||||||
|
expect(
|
||||||
|
PinballTheme(characterTheme: characterTheme),
|
||||||
|
equals(PinballTheme(characterTheme: characterTheme)),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('characterTheme is correct', () {
|
||||||
|
expect(
|
||||||
|
PinballTheme(characterTheme: characterTheme).characterTheme,
|
||||||
|
equals(characterTheme),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in new issue