import java.awt.*;

public class IPiece extends Piece
{
  public IPiece(Spot[][] spots)
  {
    super(spots[4][1],
          spots[4][0],
          spots[4][2],
          spots[4][3],
          spots[4][1],
          spots,
          Tetris.I_COLOR);
  }
  public void rotate()
  {
    Spot[][] foo = getGrid();
    Spot mid = getCenter();
    Spot[] parts = getSpots();
    Square[] rq = getSquares();
    for(int i = 0; i<4; i++)
      parts[i].setSquare(null);
    boolean rotatable = true;
    for(int i = 0; i<4; i++)
    {
      if(mid.getY() == parts[3].getY())
        if(mid.getY()-1+i > Tetris.FIELD_HEIGHT-1 || mid.getY()-1+i < 0 || foo[mid.getX()][mid.getY()-1+i].getSquare() != null) rotatable = false;
      if(mid.getX() == parts[3].getX())
        if(mid.getX()-1+i > Tetris.FIELD_WIDTH-1 || mid.getX()-1+i < 0 || foo[mid.getX()-1+i][mid.getY()].getSquare() != null) rotatable = false;
    }
    if(rotatable)
    {
      for(int i = 0; i<3; i++)
      {
        parts[i].setSquare(null);
        parts[i] = foo[mid.getY()-parts[i].getY()+mid.getX()][parts[i].getX()-mid.getX()+mid.getY()];
      }
      parts[3].setSquare(null);
      parts[3] = (parts[3].getY() == mid.getY())?foo[mid.getX()][mid.getY()+2]:foo[mid.getX()+2][mid.getY()];
    }
    for(int i = 0; i<4; i++)
      parts[i].setSquare(rq[i]);
  }
}
