鉱石吸い出しの術
前回は地面スケスケの術を使って、主人公の足元の貴重な鉱石を見えるようにしました。今回はもっと簡単に鉱石が手に入るプログラムを作っていきます。鉱石吸い出しの術です。巨大なブタさんを動かした時に使ったMinecraftShapeを使います。コードはこんな感じです。
[python]
import mcpi.minecraft as minecraft
import mcpi.minecraftstuff as stuff
import mcpi.block as block
from mcpi.vec3 import Vec3
mc = minecraft.Minecraft()
pos = mc.player.getTilePos()
def vacuumeMetal(start, dist, target):
metalBlocks = []
for y in range(0, dist.y):
for x in range(0, dist.x):
for z in range(0, dist.z):
blk = mc.getBlock(start.x + x, start.y + y, start.z + z)
if blk in target:
metalBlocks.append(stuff.ShapeBlock(x, y, z, blk))
mc.setBlock(start.x + x, start.y + y, start.z + z, block.AIR)
metalShape = stuff.MinecraftShape(mc, pos + Vec3(-dist.x/2, 0, -dist.z/2), metalBlocks)
target = [
block.IRON_ORE.id,
block.GOLD_ORE.id,
block.DIAMOND_ORE.id,
block.REDSTONE_ORE.id,
block.EMERALD_ORE.id,
block.LAPIS_LAZULI_ORE.id]
vacuumeMetal(pos + Vec3(-10, -64, -10), Vec3(20, 64, 20), target)
[/python]
早速実行してみますが、その前にスケスケの術を使ってどこに鉱石があるのか確認してみます。
見えますね。かなりの量の鉄があることが分かります。では、今回の吸い出しの術を実行してみます。
どうでしょう。鉱石がきれいサッパリと無くなっているのが分かります。では鉱石はどこにいってしまったのでしょうか。主人公の頭上を見てみると、
おぉー!たくさんの鉱石が!それにダイヤもあったんですね。これらの鉱石はもう堀り放題です。