public void turn(Tetromino.TurnDirection dir, bool withPositionChange = false) { position.unlockTile(); position = arena.tile[position.x + (int)dir, position.y]; if (withPositionChange) { transform.position = position.transform.position; } position.lockTile(this); }
public bool canTurn(Tetromino.TurnDirection dir) { if (dir == Tetromino.TurnDirection.LEFT) { if (position.x <= 0) { return(false); } if (!arena.tile[position.x - 1, position.y].empty) { if (arena.tile[position.x - 1, position.y].tile.transform.parent == transform.parent) { return(true); //Check if is locked by the same tetromino } else { return(false); } } } else { if (position.x + 1 >= arena.maxTileX) { return(false); } if (!arena.tile[position.x + 1, position.y].empty) { if (arena.tile[position.x + 1, position.y].tile.transform.parent == transform.parent) { return(true); //Check if is locked by the same tetromino } else { return(false); } } } return(true); }