2020年12月16日水曜日

Ubuntu20.04でPycraft mod for MinetestとPythonを使用して並木道を作成する

Pycraft mod for MinetestとPythonを使用して並木道を作成するには、以下の手順を実行します。

〇Pycraft mod for MinetestとPythonで作成した並木道

作成方法

1. Pycraft mod for Minetestのインストール
Pycraft mod for Minetestをインストールしていない場合は、以下の記事を参考にしてインストールしてください。
Ubuntu20.04でPycraft mod for MinetestとPythonを使用して指定されたブロックの床を作成する

2. プログラミング
以下のコードで、並木道を作成します。Thonnyの場合は、以下のコードを保存後、緑色の再生ボタンをクリックして実行してください。
import mcpi.minecraft as minecraft
import mcpi.block as block

# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)


# 木を作成する関数
def conifer(x, y, z, leaves_height, leaves_width, trunk_height):
    # 葉の部分
    for dy in range(leaves_height):
        width = 1+int((leaves_height-dy)/leaves_width)*2
        for dx in range(width):
            for dz in range(width):
                mc.setBlock(x+dx-int(width/2), y+dy+trunk_height, z+dz-int(width/2), block.LEAVES)

    # 幹の部分
    for dy in range(trunk_height+1):
        mc.setBlock( x, y+dy, z, block.WOOD)

load_width = 7
load_size = 10
offset_size = 11

# 並木
for offset in range(load_size):
    conifer(pos.x-7, pos.y, pos.z+offset * offset_size, 15, 5, 3)
    conifer(pos.x+7, pos.y, pos.z+offset * offset_size, 15, 5, 3)

# 道路
for dz in range(load_size*offset_size):
    for dx in range(load_size):
        mc.setBlock( pos.x+dx-int(load_width/2)-1, pos.y-1, pos.z+dz, block.DIRT)

関連情報

・Minetestに関する情報はこちらを参照してください。

0 件のコメント:

コメントを投稿