Select Git revision
settings_game_cubit.dart
-
Benoît Harrault authoredBenoît Harrault authored
settings_game_cubit.dart 1.48 KiB
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:memory/config/default_game_settings.dart';
import 'package:memory/models/settings/settings_game.dart';
part 'settings_game_state.dart';
class GameSettingsCubit extends HydratedCubit<GameSettingsState> {
GameSettingsCubit() : super(GameSettingsState(settings: GameSettings.createDefault()));
void setValues({
String? level,
}) {
emit(
GameSettingsState(
settings: GameSettings(
level: level ?? state.settings.level,
),
),
);
}
String getParameterValue(String code) {
switch (code) {
case DefaultGameSettings.parameterCodeLevel:
return GameSettings.getLevelValueFromUnsafe(state.settings.level);
}
return '';
}
void setParameterValue(String code, String value) {
final String level = code == DefaultGameSettings.parameterCodeLevel
? value
: getParameterValue(DefaultGameSettings.parameterCodeLevel);
setValues(
level: level,
);
}
@override
GameSettingsState? fromJson(Map<String, dynamic> json) {
final String level = json[DefaultGameSettings.parameterCodeLevel] as String;
return GameSettingsState(
settings: GameSettings(
level: level,
),
);
}
@override
Map<String, dynamic>? toJson(GameSettingsState state) {
return <String, dynamic>{
DefaultGameSettings.parameterCodeLevel: state.settings.level,
};
}
}