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, }; } }