1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 15:06:06 +00:00
AideDeJeu/aidedejeu_flutter/lib/blocs/player_character/player_character_bloc.dart

62 lines
2.2 KiB
Dart
Raw Normal View History

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-12 15:57:57 +01:00
import 'package:aidedejeu_flutter/database.dart';
import 'package:aidedejeu_flutter/models/items.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
class PlayerCharacterBloc
extends Bloc<PlayerCharacterEvent, PlayerCharacterState> {
BuildContext context;
PlayerCharacterBloc(BuildContext context) {
this.context = context;
}
@override
PlayerCharacterState get initialState => PlayerCharacterState(context: context);
@override
Stream<PlayerCharacterState> mapEventToState(
PlayerCharacterEvent event) async* {
if (event is RaceEvent) {
yield* _mapRaceEventToState(event);
} else if (event is SubRaceEvent) {
yield* _mapSubRaceEventToState(event);
} 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
}
}
Stream<PlayerCharacterState> _mapRaceEventToState(
RaceEvent event) async* {
2020-03-12 17:05:53 +01:00
var subRaces = await loadSubRaces(context, event.item);
yield state.copyWithClean(race: event.item, subRaces: subRaces);
2020-03-12 15:57:57 +01:00
}
2020-03-12 17:05:53 +01: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
}
Stream<PlayerCharacterState> _mapBackgroundEventToState(
BackgroundEvent event) async* {
2020-03-12 17:05:53 +01:00
var subBackgrounds = await loadSubBackgrounds(context, event.item);
yield state.copyWithClean(background: event.item,subBackgrounds: subBackgrounds);
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);
}
Stream<PlayerCharacterState> _mapLoadEventToState(
LoadEvent event) async* {
var races = await loadRaces(context);
var backgrounds = await loadBackgrounds(context);
yield state.copyWith(races: races, backgrounds: backgrounds); // state;
2020-03-12 15:57:57 +01:00
}
}