import 'package:flutter/material.dart';
import 'package:tetrisdual/layout/board.dart';
import 'package:tetrisdual/provider/data.dart';
import 'package:tetrisdual/utils/game_utils.dart';

class Game {
  static Container buildGameWidget(Data myProvider, double boardWidth) {
    return Container(
      child: !myProvider.isGameFinished
          ? Board.buildGameBoard(myProvider, boardWidth)
          : Game.buildEndGameMessage(myProvider),
    );
  }

  static TextButton buildQuitGameButton(Data myProvider) {
    return TextButton(
      child: Image(
        image: AssetImage('assets/icons/button_back.png'),
        fit: BoxFit.fill,
      ),
      onPressed: () => GameUtils.quitGame(myProvider),
    );
  }

  static Container buildEndGameMessage(Data myProvider) {
    String decorationImageAssetName = 'assets/icons/game_fail.png';

    Widget decorationWidget = TextButton(
      child: Image(
        image: AssetImage(decorationImageAssetName),
        fit: BoxFit.fill,
      ),
      onPressed: () => null,
    );

    return Container(
      margin: EdgeInsets.all(2),
      padding: EdgeInsets.all(2),
      child: Table(
        defaultColumnWidth: IntrinsicColumnWidth(),
        children: [
          TableRow(
            children: [
              Column(
                children: [decorationWidget],
              ),
              Column(
                children: [buildQuitGameButton(myProvider)],
              ),
              Column(
                children: [decorationWidget],
              ),
            ],
          ),
        ],
      ),
    );
  }
}