flame_bloc 1.5.0 icon indicating copy to clipboard operation
flame_bloc: ^1.5.0 copied to clipboard

Bloc integration to Flame games

Flame Bloc 🔥🧱 #

flame_bloc adds easy access to blocs/cubits that are available on the widget tree to your Flame game and makes it possible for Flame components to listen to state changes to those blocs/cubits.

How to use #

Lets assume we have a bloc that handles player inventory and it is available on the widget tree via a BlocProvider like this:

  create: (_) => InventoryBloc(),
  child: GameWidget(game: ExampleGame()),

To enable the features of flame_bloc in your game, you can make your game class inherit from FlameBlocGame, or if you are already using an enhanced FlameGame class (like for example a Forge2DGame), the FlameBloc mixin can be used instead.

To access the bloc from inside your game, the read method can be used.

class ExampleGame extends FlameBlocGame {
  void selectWeapon() {

To have your components listen to state change, the BlocComponent mixin can be used.

class PlayerComponent with BlocComponent<InventoryBloc, InventoryState> {

  // onNewState can be overriden to so the component
  // can be notified on state changes
  void onNewState(InventoryState state) {

  void update(double dt) {
    // the `state` getter can also be used to have
    // direct access to the current state

For a full example, check the example folder