テトリスでゲームオーバーになるのはガイドラインによると以下の3パターンです。

(1)ネクストミノが出現する場所にブロックがある。
(2)ミノを完全にフィールド外に置く。
(3)敵の攻撃等によりフィールドの更に20ブロック上までブロックがせり上がる。

これは対戦型ではないので(3)に関しては完全無視で対応。現実的には(1)だけでよいのではないかと思います。

ネクストミノが出現する場所ですが、これもガイドラインで決められていて、

向きはネクストに表示されている状態(北向き)。
場所は横はOミノ以外は左から4列目にミノの左端がくるように出現、Oミノだけは左から5列目にミノの左端が来るように出現する。縦はミノの下端が21行目になるように出現。

これまではテトリミノを全部で20行あるフィールドのなかに完全にみえる形で出現させていましたが、これが間違い。正しくは縦はミノの下端が21行目になるようにして、そこから落下することで下側から見えてくるようにしなければなりません。

そこでフィールドは20行ではなく22行にして、実際にみえるのは下の20行というふうに作りかえます。

Blockクラスのコンストラクタだけ示します。最初の2行は非表示にします。フィールド変数LeftTopBlockはフィールドのみえる部分の左上の座標です。これだと左上にみえるブロックの座標が(150, 50)になります。

これで「縦はミノの下端が21行目になるように出現」させることができるようになりましたが、もうひとつ条件があります。

「横はOミノ以外は左から4列目に、Oミノだけは左から5列目にミノの左端が来るようにする」。

そこでミノを出現させるメソッドを変更します。

ゲームオーバー判定ですが、

(1)ネクストミノが出現する場所にブロックがある。
(2)ミノを完全にフィールド外に置く。

(1)はこれまでどおりです。ネクストミノが出現させたときにすでに固定されたブロックがあればゲームオーバーであると判定します。

(2)の判定はミノを固定する直前にミノのY座標が0または1であることでおこなうことができます。

それからゲームオーバーになったにも関わらずミノを左右に操作できてしまうのはおかしいのです。ゲームオーバーになったらキー操作を受け付けないようにしてしまいましょう。