import 'package:jeweled/config/default_game_settings.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() { print('Settings: '); print(' boardSize: ' + boardSize.toString()); print(' colorsCount: ' + colorsCount.toString()); } String toString() { return 'GameSettings(' + this.toJson().toString() + ')'; } Map<String, dynamic>? toJson() { return <String, dynamic>{ 'boardSize': this.boardSize, 'colorsCount': this.colorsCount, }; } }