def draw_sierpinski_triangle(minecraft):
    def random_in_range():
        return random.randint(-MAX_XZ, MAX_XZ)

    def int_average(a, b):
        return int(round((a + b) / 2.0))

    # Draw the triangle vertices.

    for (x, y, z) in TRIANGLE_VERTICES:
        minecraft.setBlock(x, y, z, TRIANGLE_BLOCK_ID)

    # Pick a random point to start at.

    current = (random_in_range(), TRIANGLE_HEIGHT, random_in_range())

    for i in range(MAX_ITERATIONS):

        if i % PRINT_FREQ == 0:
            print("Drew %s blocks" % i)

        # Pick a random vertex to "walk" toward.

        destination = random.choice(TRIANGLE_VERTICES)

        # Draw a block in the middle of the current location and the
        # destination.

        (c_x, c_y, c_z) = current
        (d_x, d_y, d_z) = destination
        current = (int_average(c_x,
                               d_x), TRIANGLE_HEIGHT, int_average(c_z, d_z))
        (x, y, z) = current
        minecraft.setBlock(x, y, z, TRIANGLE_BLOCK_ID)
def draw_sierpinski_triangle(minecraft):
    def random_in_range():
        return random.randint(-MAX_XZ, MAX_XZ)

    def int_average(a, b):
        return int(round((a + b) / 2.0))

    # Draw the triangle vertices.

    for (x, y, z) in TRIANGLE_VERTICES:
        minecraft.setBlock(x, y, z, TRIANGLE_BLOCK_ID)

    # Pick a random point to start at.

    current = (random_in_range(), TRIANGLE_HEIGHT, random_in_range())

    for i in xrange(MAX_ITERATIONS):

        if i % PRINT_FREQ == 0:
            print("Drew %s blocks" % i)

        # Pick a random vertex to "walk" toward.

        destination = random.choice(TRIANGLE_VERTICES)

        # Draw a block in the middle of the current location and the
        # destination.

        (c_x, c_y, c_z) = current
        (d_x, d_y, d_z) = destination
        current = (int_average(c_x, d_x), TRIANGLE_HEIGHT, int_average(c_z, d_z))
        (x, y, z) = current
        minecraft.setBlock(x, y, z, TRIANGLE_BLOCK_ID)
Ejemplo n.º 3
0
def spawnLine(position, direction, length, blockId):
    for i in range(1, length):
        time.sleep(0.1)
        print(i)
        position = util.addVectors(position, direction)
        minecraft.setBlock(position.x, position.y, position.z, blockId)
    return position
Ejemplo n.º 4
0
def setBlockColor(position, color):
    for counter in range(position.z - positions[color][z]):
        minecraft.setBlock(positions[color][x], positions[color][y],
                           positions[color][z] + counter, mcpi.block.WOOL.id,
                           blockColorOn[color])
    for counter in range(10 - position.z + positions[color][z]):
        minecraft.setBlock(positions[color][x], positions[color][y],
                           position.z + counter, mcpi.block.WOOL.id,
                           blockColorOff[color])
Ejemplo n.º 5
0
def spawnLine(position, direction, length, blockData, blockId2):
    for i in range(0, length):
        time.sleep(0.05)
        position = util.addVectors(position, direction)
        if (i % 5 == 0):
            minecraft.setBlock(position.x, position.y, position.z, blockId2)
        else:
            minecraft.setBlock(position.x, position.y, position.z, 35,
                               blockData)
    return position
def fireCannon(position, direction):
    position = addVectors(position, direction)
    hit = False
    while not (hit):
        time.sleep(0.1)
        minecraft.setBlock(position.x, position.y, position.z, block.AIR.id)
        position = addVectors(position, direction)
        if not (minecraft.getBlock(position.x, position.y, position.z)
                == block.AIR.id):
            hit = True
        minecraft.setBlock(position.x, position.y, position.z,
                           block.IRON_BLOCK.id)
    explosion(position)
    return position
Ejemplo n.º 7
0
def drawAxis():
    print("Drawing Axis on Map")

    colour = 13
    drawX(vec3.Vec3(19, 3, 0), block.WOOL.id, colour)
    spawnLine(vec3.Vec3(-6, 0, 0), vec3.Vec3(1, 0, 0), 21, colour,
              block.GOLD_BLOCK.id)

    colour = 3
    drawY(vec3.Vec3(0, 17, 0), block.WOOL.id, colour)
    spawnLine(vec3.Vec3(0, -6, 0), vec3.Vec3(0, 1, 0), 21, colour,
              block.GOLD_BLOCK.id)

    colour = 2
    drawZ(vec3.Vec3(0, 5, 17), block.WOOL.id, colour)
    spawnLine(vec3.Vec3(0, 0, -6), vec3.Vec3(0, 0, 1), 21, colour,
              block.GOLD_BLOCK.id)

    minecraft.setBlock(0, 0, 0, block.GOLD_BLOCK.id)
Ejemplo n.º 8
0
def drawZ(position, blockId, blockData):
    minecraft.setBlock(position.x, position.y, position.z, blockId, blockData)
    minecraft.setBlock(position.x, position.y, position.z + 1, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y, position.z + 2, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y, position.z + 3, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y, position.z + 4, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 3, position.z + 3, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 2, position.z + 2, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 1, position.z + 1, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 4, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 4, position.z + 1, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 4, position.z + 2, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 4, position.z + 3, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y - 4, position.z + 4, blockId,
                       blockData)
Ejemplo n.º 9
0
def drawY(position, blockId, blockData):
    minecraft.setBlock(position.x, position.y, position.z, blockId, blockData)
    minecraft.setBlock(position.x, position.y + 1, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y + 2, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y + 3, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y + 4, position.z + 1, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y + 4, position.z - 1, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y + 5, position.z + 2, blockId,
                       blockData)
    minecraft.setBlock(position.x, position.y + 5, position.z - 2, blockId,
                       blockData)
Ejemplo n.º 10
0
def drawX(position, blockId, blockData):
    minecraft.setBlock(position.x, position.y, position.z, blockId, blockData)
    minecraft.setBlock(position.x + 1, position.y + 1, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x + 1, position.y - 1, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x + 2, position.y + 2, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x + 2, position.y - 2, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x - 1, position.y + 1, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x - 1, position.y - 1, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x - 2, position.y + 2, position.z, blockId,
                       blockData)
    minecraft.setBlock(position.x - 2, position.y - 2, position.z, blockId,
                       blockData)
Ejemplo n.º 11
0
def setBlockColor(position, color):
    minecraft.setBlock(position.x, position.y, position.z, mcpi.block.WOOL.id,
                       color)
def explosion(position):
    minecraft.setBlock(position.x, position.y, position.z, block.AIR.id)
    minecraft.setBlock(position.x + 1, position.y, position.z, block.AIR.id)
    minecraft.setBlock(position.x - 1, position.y, position.z, block.AIR.id)
    minecraft.setBlock(position.x, position.y + 1, position.z, block.AIR.id)
    minecraft.setBlock(position.x, position.y - 1, position.z, block.AIR.id)
    minecraft.setBlock(position.x, position.y, position.z + 1, block.AIR.id)
    minecraft.setBlock(position.x, position.y, position.z - 1, block.AIR.id)
Ejemplo n.º 13
0
import time

blue = 18
minecraft = mcpi.minecraft.Minecraft.create()

RPi.GPIO.setmode(RPi.GPIO.BCM)
RPi.GPIO.setup(blue, RPi.GPIO.OUT, initial=False)


def ledOn(port):
    RPi.GPIO.output(port, True)


def ledOff(port):
    RPi.GPIO.output(port, False)


try:
    while True:
        position = minecraft.player.getTilePos()
        material = minecraft.getBlock(position.x, position.y, position.z)
        if material != mcpi.block.SNOW.id:
            ledOn(blue)
            time.sleep(0.1)
            ledOff(blue)
            minecraft.setBlock(position.x, position.y, position.z,
                               mcpi.block.SNOW)

except KeyboardInterrupt:
    RPi.GPIO.cleanup()