ブロック設置
目標 : 自分の頭上に DIAMOND_OREブロックを置く!
ながれとしては、
1 自分の座標を取得する
2 自分の座標の上にブロックを設置する
練習 自分の座標を取得し、チャットエリアに表示する
注意点として、F3を押して表示される x,y,x とは、異なります。
特に、y が、F3の場合と大きく異なり、
F3 : yは岩盤が0かな?
API: yは水面が0かな?
import mcpi.minecraft as minecraft mc = minecraft.Minecraft.create() playerPos = mc.player.getPos() mc.postToChat("Pos : " + str(playerPos))
出力
Pos : Vec3(941.7811125650827,-49.0,449.30000001192093)
注釈
.create(address = "localhost", port = 4711)
本番
import mcpi.minecraft as minecraft import mcpi.block as block mc = minecraft.Minecraft.create() playerPos = mc.player.getPos() mc.setBlock(playerPos.x, playerPos.y+2, playerPos.z, block.DIAMOND_ORE)
サンプルに含まれている、helloworld.py
ほぼそのままです。
playerPos.y+2 とすることで、自分の足元(下半身)から、2ブロック分上(自分の頭上)に、 ブロックを出現させています。
コマンド実行
方法1 チャットエリアから
/ を押してチャットモードに入り、
/py sample
方法2 Windowのコマンドラインから
コマンドプロンプトを出し(cmdなど)、スクリプト保存フォルダから、
PS C:\Users\***\AppData\Roaming\.minecraft\forge.1.9\mcpipy> python.exe .\sample.py
上記サンプルでは、forge.1.9というデータフォルダを作成し、そこに mcpipy を作成しています。
改良1 ブロックを変える
サンプルを改良してみましょう
設置するブロックを変更する
mc.setBlock(playerPos.x, playerPos.y+2, playerPos.z, block.DIAMOND_ORE)
の、block.DIAMOND_ORE
を書き換えれば、いかにも別のブロックを設置できるようになりそうですが、
まさにその通りです。
例えば、
mc.setBlock(playerPos.x, playerPos.y+2, playerPos.z, block.DIAMOND_BLOCK)
として実行すると、
ダイヤモンドブロックが設置されました!
どのようなブロックが利用可能なのかは、APIを見てください。
<Stuff about="code" />: Minecraft API
改良2 複数のブロックを設置する
次に、頭上に1つではなく、2つ設置しましょう。 2つ上と、3つ上にしましょう。
import mcpi.minecraft as minecraft import mcpi.block as block mc = minecraft.Minecraft.create() playerPos = mc.player.getPos() mc.setBlock(playerPos.x, playerPos.y+2, playerPos.z, block.DIAMOND_BLOCK) mc.setBlock(playerPos.x, playerPos.y+3, playerPos.z, block.DIAMOND_BLOCK)