LevelThemes constructor
LevelThemes({
- required TetrisTheme base,
- List<
LevelPalette> ? palettes, - int levelsPerPalette = 1,
- bool? recolorBoard,
When recolorBoard is null, board colors are replaced only if base
has a dark board, so the built-in dark palettes do not clash with light
themes' text styles.
Implementation
LevelThemes({
required this.base,
List<LevelPalette>? palettes,
this.levelsPerPalette = 1,
bool? recolorBoard,
}) : assert(levelsPerPalette > 0, 'levelsPerPalette must be positive'),
palettes = palettes ?? LevelPalette.classic,
_themes = [
for (final p in palettes ?? LevelPalette.classic)
p.applyTo(
base,
recolorBoard:
recolorBoard ?? base.boardBackground.computeLuminance() < 0.5,
),
] {
assert(_themes.isNotEmpty, 'palettes must not be empty');
}