Select Git revision
timeline_card.dart
-
Benoît Harrault authoredBenoît Harrault authored
settings_game.dart 1.23 KiB
import 'package:jeweled/config/default_game_settings.dart';
import 'package:jeweled/utils/tools.dart';
class GameSettings {
final int boardSize;
final int colorsCount;
GameSettings({
required this.boardSize,
required this.colorsCount,
});
static int getBoardSizeValueFromUnsafe(int size) {
if (DefaultGameSettings.allowedBoardSizeValues.contains(size)) {
return size;
}
return DefaultGameSettings.defaultBoardSizeValue;
}
static int getColorsCountValueFromUnsafe(int colorsCount) {
if (DefaultGameSettings.allowedColorsCountValues.contains(colorsCount)) {
return colorsCount;
}
return DefaultGameSettings.defaultColorsCountValue;
}
factory GameSettings.createDefault() {
return GameSettings(
boardSize: DefaultGameSettings.defaultBoardSizeValue,
colorsCount: DefaultGameSettings.defaultColorsCountValue,
);
}
void dump() {
printlog('Settings: ');
printlog(' boardSize: $boardSize');
printlog(' colorsCount: $colorsCount');
}
@override
String toString() {
return 'GameSettings(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
'boardSize': boardSize,
'colorsCount': colorsCount,
};
}
}