| 
									
										
										
										
											2020-03-12 17:22:48 +01:00
										 |  |  | import 'package:aidedejeu_flutter/blocs/player_character/player_character_event.dart'; | 
					
						
							|  |  |  | import 'package:aidedejeu_flutter/blocs/player_character/player_character_state.dart'; | 
					
						
							| 
									
										
										
										
											2020-03-22 20:36:08 +01:00
										 |  |  | import 'package:aidedejeu_flutter/databases/database.dart'; | 
					
						
							|  |  |  | import 'package:aidedejeu_flutter/databases/database_sqflite.dart'; | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  | import 'package:bloc/bloc.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PlayerCharacterBloc | 
					
						
							|  |  |  |     extends Bloc<PlayerCharacterEvent, PlayerCharacterState> { | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  |   PlayerCharacterBloc() : super(null) {} | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-22 20:36:08 +01:00
										 |  |  |   BaseDB _db = SqfliteDB.instance; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   @override | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |   PlayerCharacterState get initialState => PlayerCharacterState(); | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   Stream<PlayerCharacterState> mapEventToState( | 
					
						
							|  |  |  |       PlayerCharacterEvent event) async* { | 
					
						
							|  |  |  |     if (event is RaceEvent) { | 
					
						
							|  |  |  |       yield* _mapRaceEventToState(event); | 
					
						
							|  |  |  |     } else if (event is SubRaceEvent) { | 
					
						
							|  |  |  |       yield* _mapSubRaceEventToState(event); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  |     } else if (event is OriginEvent) { | 
					
						
							|  |  |  |       yield* _mapOriginEventToState(event); | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |     } else if (event is BackgroundEvent) { | 
					
						
							|  |  |  |       yield* _mapBackgroundEventToState(event); | 
					
						
							|  |  |  |     } else if (event is SubBackgroundEvent) { | 
					
						
							|  |  |  |       yield* _mapSubBackgroundEventToState(event); | 
					
						
							|  |  |  |     } else if (event is LoadEvent) { | 
					
						
							| 
									
										
										
										
											2020-03-12 17:05:53 +01:00
										 |  |  |       yield* _mapLoadEventToState(event); | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   Stream<PlayerCharacterState> _mapRaceEventToState(RaceEvent event) async* { | 
					
						
							| 
									
										
										
										
											2020-03-22 20:36:08 +01:00
										 |  |  |     var subRaces = await _db.loadSubRaces(event.item); | 
					
						
							| 
									
										
										
										
											2020-03-12 17:05:53 +01:00
										 |  |  |     yield state.copyWithClean(race: event.item, subRaces: subRaces); | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   Stream<PlayerCharacterState> _mapSubRaceEventToState( | 
					
						
							|  |  |  |       SubRaceEvent event) async* { | 
					
						
							| 
									
										
										
										
											2020-03-12 17:05:53 +01:00
										 |  |  |     yield state.copyWith(subRace: event.item); | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  |   Stream<PlayerCharacterState> _mapOriginEventToState( | 
					
						
							|  |  |  |       OriginEvent event) async* { | 
					
						
							|  |  |  |     yield state.copyWith(origin: event.item); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   Stream<PlayerCharacterState> _mapBackgroundEventToState( | 
					
						
							|  |  |  |       BackgroundEvent event) async* { | 
					
						
							| 
									
										
										
										
											2020-03-22 20:36:08 +01:00
										 |  |  |     var subBackgrounds = await _db.loadSubBackgrounds(event.item); | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  |     yield state.copyWithClean( | 
					
						
							|  |  |  |         background: event.item, subBackgrounds: subBackgrounds); | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   Stream<PlayerCharacterState> _mapSubBackgroundEventToState( | 
					
						
							|  |  |  |       SubBackgroundEvent event) async* { | 
					
						
							| 
									
										
										
										
											2020-03-12 17:05:53 +01:00
										 |  |  |     yield state.copyWith(subBackground: event.item); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   Stream<PlayerCharacterState> _mapLoadEventToState(LoadEvent event) async* { | 
					
						
							| 
									
										
										
										
											2020-03-22 20:36:08 +01:00
										 |  |  |     var races = await _db.loadRaces(); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  |     var origins = await _db.loadOrigins(); | 
					
						
							| 
									
										
										
										
											2020-03-22 20:36:08 +01:00
										 |  |  |     var backgrounds = await _db.loadBackgrounds(); | 
					
						
							| 
									
										
										
										
											2020-09-27 18:31:25 +02:00
										 |  |  |     yield state.copyWith( | 
					
						
							|  |  |  |         races: races, origins: origins, backgrounds: backgrounds); // state;
 | 
					
						
							| 
									
										
										
										
											2020-03-12 15:57:57 +01:00
										 |  |  |   } | 
					
						
							|  |  |  | } |