From 25da74dfd2139220fc9a71e9db97f72c74022392 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Thu, 12 Mar 2020 17:22:48 +0100 Subject: [PATCH] BloC --- .../player_character_bloc.dart | 120 +----------------- .../player_character_event.dart | 35 +++++ .../player_character_state.dart | 90 +++++++++++++ aidedejeu_flutter/lib/widgets/pceditor.dart | 2 + 4 files changed, 129 insertions(+), 118 deletions(-) create mode 100644 aidedejeu_flutter/lib/blocs/player_character/player_character_event.dart create mode 100644 aidedejeu_flutter/lib/blocs/player_character/player_character_state.dart diff --git a/aidedejeu_flutter/lib/blocs/player_character/player_character_bloc.dart b/aidedejeu_flutter/lib/blocs/player_character/player_character_bloc.dart index a147d96f..36b6d147 100644 --- a/aidedejeu_flutter/lib/blocs/player_character/player_character_bloc.dart +++ b/aidedejeu_flutter/lib/blocs/player_character/player_character_bloc.dart @@ -1,127 +1,11 @@ +import 'package:aidedejeu_flutter/blocs/player_character/player_character_event.dart'; +import 'package:aidedejeu_flutter/blocs/player_character/player_character_state.dart'; 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 PlayerCharacterState extends Equatable { - final BuildContext context; - - final RaceItem race; - final SubRaceItem subRace; - final List races; - final List subRaces; - - final BackgroundItem background; - final SubBackgroundItem subBackground; - final List backgrounds; - final List subBackgrounds; - - PlayerCharacterState({ - this.context, - this.race, - this.races, - this.subRace, - this.subRaces, - this.background, - this.backgrounds, - this.subBackground, - this.subBackgrounds, - }); - - PlayerCharacterState copyWith({ - BuildContext context, - RaceItem race, - List races, - SubRaceItem subRace, - List subRaces, - BackgroundItem background, - List backgrounds, - SubBackgroundItem subBackground, - List subBackgrounds, - }) { - return PlayerCharacterState( - context: context ?? this.context, - race: race ?? this.race, - races: races ?? this.races, - subRace: subRace ?? this.subRace, - subRaces: subRaces ?? this.subRaces, - background: background ?? this.background, - backgrounds: backgrounds ?? this.backgrounds, - subBackground: subBackground ?? this.subBackground, - subBackgrounds: subBackgrounds ?? this.subBackgrounds, - ); - } - - PlayerCharacterState copyWithClean({ - BuildContext context, - RaceItem race, - List races, - SubRaceItem subRace, - List subRaces, - BackgroundItem background, - List backgrounds, - SubBackgroundItem subBackground, - List subBackgrounds, - }) { - return PlayerCharacterState( - context: context ?? this.context, - race: race ?? this.race, - races: races ?? this.races, - subRace: race != null ? null : subRace ?? this.subRace, - subRaces: race != null ? subRaces : subRaces ?? this.subRaces, - background: background ?? this.background, - backgrounds: backgrounds ?? this.backgrounds, - subBackground: background != null ? null : subBackground ?? this.subBackground, - subBackgrounds: background != null ? subBackgrounds : subBackgrounds ?? this.subBackgrounds, - ); - } - - @override - List get props => [ - race, - subRace, - races, - subRaces, - background, - subBackground, - backgrounds, - subBackgrounds - ]; -} - -abstract class PlayerCharacterEvent extends Equatable {} - -class RaceEvent extends SetItemEvent { - RaceEvent(RaceItem item) : super(item); -} - -class SubRaceEvent extends SetItemEvent { - SubRaceEvent(SubRaceItem item) : super(item); -} - -class SetItemEvent extends PlayerCharacterEvent { - final T item; - - @override - List get props => [item]; - - SetItemEvent(T item) : this.item = item; -} - -class BackgroundEvent extends SetItemEvent { - BackgroundEvent(BackgroundItem item) : super(item); -} - -class SubBackgroundEvent extends SetItemEvent { - SubBackgroundEvent(SubBackgroundItem item) : super(item); -} - -class LoadEvent extends PlayerCharacterEvent { - @override - List get props => []; -} - class PlayerCharacterBloc extends Bloc { BuildContext context; diff --git a/aidedejeu_flutter/lib/blocs/player_character/player_character_event.dart b/aidedejeu_flutter/lib/blocs/player_character/player_character_event.dart new file mode 100644 index 00000000..6101213c --- /dev/null +++ b/aidedejeu_flutter/lib/blocs/player_character/player_character_event.dart @@ -0,0 +1,35 @@ +import 'package:aidedejeu_flutter/models/items.dart'; +import 'package:equatable/equatable.dart'; + +abstract class PlayerCharacterEvent extends Equatable {} + +class RaceEvent extends SetItemEvent { + RaceEvent(RaceItem item) : super(item); +} + +class SubRaceEvent extends SetItemEvent { + SubRaceEvent(SubRaceItem item) : super(item); +} + +class SetItemEvent extends PlayerCharacterEvent { + final T item; + + @override + List get props => [item]; + + SetItemEvent(T item) : this.item = item; +} + +class BackgroundEvent extends SetItemEvent { + BackgroundEvent(BackgroundItem item) : super(item); +} + +class SubBackgroundEvent extends SetItemEvent { + SubBackgroundEvent(SubBackgroundItem item) : super(item); +} + +class LoadEvent extends PlayerCharacterEvent { + @override + List get props => []; +} + diff --git a/aidedejeu_flutter/lib/blocs/player_character/player_character_state.dart b/aidedejeu_flutter/lib/blocs/player_character/player_character_state.dart new file mode 100644 index 00000000..b9e2c189 --- /dev/null +++ b/aidedejeu_flutter/lib/blocs/player_character/player_character_state.dart @@ -0,0 +1,90 @@ +import 'package:aidedejeu_flutter/models/items.dart'; +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +class PlayerCharacterState extends Equatable { + final BuildContext context; + + final RaceItem race; + final SubRaceItem subRace; + final List races; + final List subRaces; + + final BackgroundItem background; + final SubBackgroundItem subBackground; + final List backgrounds; + final List subBackgrounds; + + PlayerCharacterState({ + this.context, + this.race, + this.races, + this.subRace, + this.subRaces, + this.background, + this.backgrounds, + this.subBackground, + this.subBackgrounds, + }); + + PlayerCharacterState copyWith({ + BuildContext context, + RaceItem race, + List races, + SubRaceItem subRace, + List subRaces, + BackgroundItem background, + List backgrounds, + SubBackgroundItem subBackground, + List subBackgrounds, + }) { + return PlayerCharacterState( + context: context ?? this.context, + race: race ?? this.race, + races: races ?? this.races, + subRace: subRace ?? this.subRace, + subRaces: subRaces ?? this.subRaces, + background: background ?? this.background, + backgrounds: backgrounds ?? this.backgrounds, + subBackground: subBackground ?? this.subBackground, + subBackgrounds: subBackgrounds ?? this.subBackgrounds, + ); + } + + PlayerCharacterState copyWithClean({ + BuildContext context, + RaceItem race, + List races, + SubRaceItem subRace, + List subRaces, + BackgroundItem background, + List backgrounds, + SubBackgroundItem subBackground, + List subBackgrounds, + }) { + return PlayerCharacterState( + context: context ?? this.context, + race: race ?? this.race, + races: races ?? this.races, + subRace: race != null ? null : subRace ?? this.subRace, + subRaces: race != null ? subRaces : subRaces ?? this.subRaces, + background: background ?? this.background, + backgrounds: backgrounds ?? this.backgrounds, + subBackground: background != null ? null : subBackground ?? this.subBackground, + subBackgrounds: background != null ? subBackgrounds : subBackgrounds ?? this.subBackgrounds, + ); + } + + @override + List get props => [ + race, + subRace, + races, + subRaces, + background, + subBackground, + backgrounds, + subBackgrounds + ]; +} + diff --git a/aidedejeu_flutter/lib/widgets/pceditor.dart b/aidedejeu_flutter/lib/widgets/pceditor.dart index 66071151..0ea73800 100644 --- a/aidedejeu_flutter/lib/widgets/pceditor.dart +++ b/aidedejeu_flutter/lib/widgets/pceditor.dart @@ -1,4 +1,6 @@ import 'package:aidedejeu_flutter/blocs/player_character/player_character_bloc.dart'; +import 'package:aidedejeu_flutter/blocs/player_character/player_character_event.dart'; +import 'package:aidedejeu_flutter/blocs/player_character/player_character_state.dart'; import 'package:aidedejeu_flutter/localization.dart'; import 'package:aidedejeu_flutter/models/items.dart'; import 'package:aidedejeu_flutter/widgets/library.dart';