この記事ではマインクラフトとコードコネクションを用いて、プログラミングによって露天掘りする方法を紹介します。マインクラフトでプログラミングができるようになる環境構築については過去記事を参考にしてください。
コードコネクションを開き、新しいプロジェクトを作ります。適当に名前を付けましょう。私はopen_pit_mining
という名前にしました。
ワールド座標とプレイヤー座標
今更ですがワールド座標とプレイヤー座標について説明します。下の画像のようにワールド座標とプレイヤー座標をそれぞれw_pos
とp_pos
に代入して、メッセージに出してみます。
プレイヤー座標はそのままだとわかりづらいので、(1, 2, 3)を代入したものも表示してみましょう。
位置のところに書いてある座標とワールド座標が一致しています。
プレイヤー座標のところには~
が書かれています。(1, 2, 3)と入れたところには~1 ~2 ~3
が入っています。0のときは省略されるみたいですね。
露天掘り
さて、まず露天掘りのビフォーアフターを見てみましょう。次の画像の場所を露天掘りすると2枚目の画像のようになります。
それを実現するプログラムは以下です。
自分の立っている黄色いブロックは残したいので、~0 ~2 ~0
から開始しています。ワールド座標のy(高低)の値を取得しながら、その値が5になるまで繰り返します。
ブロックを並べるところが少し難しいですが、位置の足し算をしています。自分のx
とz
の部分に-50を足したり、50を足したりすることでその範囲を表現しています。この値を変更すると露天掘りする範囲を変更することができます。
鉱石を残して露天掘り
これだけだとちょっと寂しいので、鉱石を残した露天掘りをしたいと思います。
ブロックを並べる
という部分を関数に置き換えています。
関数の中身は草、石、安山岩などなどを空気に置き換えるようにしています。
長いので上部までしか見えません。
結果、以下のようになります。水があふれて失敗してしまいました…
ちょっと改良を加えます。以下の2段階の作戦で行きます。
- 土とか石とかを乾いたスポンジに置き換えて水を吸い取る。
- 乾いたスポンジと濡れたスポンジを空気に置き換える。
上記関数(replaceBlock
)の空気のところを乾いたスポンジに変えます。
また別の処理として、乾いたスポンジと濡れたスポンジを空気に置き換えます。
成功しました!廃坑やダンジョンがありました。
石炭、鉄、金、レッドストーン、ラピスラズリ、ダイヤモンドといった鉱石はこんな感じで埋まっているんですね~