Select Git revision
settings_game.dart
-
Benoît Harrault authoredBenoît Harrault authored
settings_game.dart 1.56 KiB
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:jeweled/config/default_game_settings.dart';
class GameSettings {
final String boardSize;
final String colorsCount;
GameSettings({
required this.boardSize,
required this.colorsCount,
});
// Getters to convert String to int
int get boardSizeValue => int.parse(boardSize);
int get colorsCountValue => int.parse(colorsCount);
static String getBoardSizeValueFromUnsafe(String size) {
if (DefaultGameSettings.allowedBoardSizeValues.contains(size)) {
return size;
}
return DefaultGameSettings.defaultBoardSizeValue;
}
static String getColorsCountValueFromUnsafe(String 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('$GameSettings:');
printlog(' ${DefaultGameSettings.parameterCodeBoardSize}: $boardSize');
printlog(' ${DefaultGameSettings.parameterCodeColorsCount}: $colorsCount');
printlog('');
}
@override
String toString() {
return '$GameSettings(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
DefaultGameSettings.parameterCodeBoardSize: boardSize,
DefaultGameSettings.parameterCodeColorsCount: colorsCount,
};
}
}