import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:tetrisdual/cubit/game_cubit.dart'; import 'package:tetrisdual/models/game/player.dart'; import 'package:tetrisdual/ui/widgets/game/board_painter.dart'; class TetriminoWidget extends StatelessWidget { const TetriminoWidget({super.key, required this.player}); final Player player; @override Widget build(BuildContext context) { final GameCubit gameCubit = BlocProvider.of<GameCubit>(context); final double width = MediaQuery.of(context).size.width; return GestureDetector( onTapUp: (details) { if (player.playerId == gameCubit.getCurrentPlayer().playerId) { player.pickRandomTetrimino(); gameCubit.refresh(); } }, child: CustomPaint( size: Size(width, width), willChange: false, painter: BoardPainter(player.currentTetrimino), isComplex: true, key: Key(player.currentTetrimino.toString()), ), ); } }