Select Git revision
pubspec.yaml
settings_game.dart 1.70 KiB
import 'package:momomotus/config/default_game_settings.dart';
import 'package:momomotus/utils/tools.dart';
class GameSettings {
final String lang;
final String length;
final String level;
GameSettings({
required this.lang,
required this.length,
required this.level,
});
static String getLangValueFromUnsafe(String lang) {
if (DefaultGameSettings.allowedLangValues.contains(lang)) {
return lang;
}
return DefaultGameSettings.defaultLangValue;
}
static String getLengthValueFromUnsafe(String length) {
if (DefaultGameSettings.allowedLengthValues.contains(length)) {
return length;
}
return DefaultGameSettings.defaultLengthValue;
}
static String getLevelValueFromUnsafe(String level) {
if (DefaultGameSettings.allowedLevelValues.contains(level)) {
return level;
}
return DefaultGameSettings.defaultLevelValue;
}
factory GameSettings.createDefault() {
return GameSettings(
lang: DefaultGameSettings.defaultLangValue,
length: DefaultGameSettings.defaultLengthValue,
level: DefaultGameSettings.defaultLevelValue,
);
}
void dump() {
printlog('$GameSettings:');
printlog(' ${DefaultGameSettings.parameterCodeLang}: $lang');
printlog(' ${DefaultGameSettings.parameterCodeLength}: $length');
printlog(' ${DefaultGameSettings.parameterCodeLevel}: $level');
printlog('');
}
@override
String toString() {
return '$GameSettings(${toJson()})';
}
Map<String, dynamic>? toJson() {
return <String, dynamic>{
DefaultGameSettings.parameterCodeLang: lang,
DefaultGameSettings.parameterCodeLength: length,
DefaultGameSettings.parameterCodeLevel: level,
};
}
}