bonfire_bloc 0.0.2 copy "bonfire_bloc: ^0.0.2" to clipboard
bonfire_bloc: ^0.0.2 copied to clipboard

Integration for the Bloc state management library to Bonfire games.

bonfire_bloc 🔥🧱 #

Inspired by flame_bloc, bonfire_bloc offers a simple and natural way (similar to flutter_bloc) to use blocs and cubits inside a Bonfire game.

Installing #

Simply run:


flutter pub add bonfire_bloc
flutter pub add bonfire
flutter pub add flutter_bloc

Or add custom versions in your pubspec.yaml:


  bonfire: ^3...
  flutter_bloc: ^8...

How to use #

Lets assume we have a bloc that handles player inventory. First, we need to make it available to our entire game.

We can do that by using BlocProvider or MultiBlocProvider of the flutter_bloc:

return BlocProvider(
    create: (context) => InventoryBloc(),
    child: BonfireWidget(
        ...
    )
);

Using the bloc at the component level can be done with two approaches:

  1. Listening to state changes by using BonfireBlocListenable mixin:
class Player extends SimplePLayer
  with BonfireBlocListenable<PlayerInventoryBloc, PlayerInventoryState> {

  @override
  void onNewState(state) {
    updateGear(state);
  }
}
  1. Reading the values by using BonfireBlocReader mixin:
class Coin extends GameDecoration
  with BonfireBlocReader<PlayerInventoryBloc> {

  void takeHit() {
    bloc.add(const IncrementCoin());
  }
}

or with context.read:

class Coin extends GameDecoration{

  void takeHit() {
    context.read<PlayerInventoryBloc>().add(const IncrementCoin());
  }
}

Note that one limitation of the mixin is that it can access only a single bloc.

0
likes
140
points
48
downloads

Publisher

unverified uploader

Weekly Downloads

Integration for the Bloc state management library to Bonfire games.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

bonfire, flutter, flutter_bloc

More

Packages that depend on bonfire_bloc