Esempio n. 1
0
def spawnAdvancedRoof(position, direction, height, length):
    for i in help(height):
        newPosition = vec3.Vec3(position.x + direction.x * i,
                                position.y + direction.y * i,
                                position.z + direction.z * i)
        spawnLine(
            newPosition,
            util.turnVectorClockwise(vec3.Vec3(direction.x, 0, direction.z)),
            length, block.WOOD_PLANKS.id)


#spawnFlatRoof(vec3.Vec3(0,6,0), vec3.Vec3(1,0,0),5)
#spawnAdvancedRoof(vec3.Vec3(0,6,0), vec3.Vec3(1,1,0),5, 10)
#spawnLine(vec3.Vec3(0,11,0), vec3.Vec3(1,1,2))
#spawnLine(vec3.Vec3(0,1,0), vec3.Vec3(1,0,0), 10, block.BRICK_BLOCK.id)
Esempio n. 2
0
    def load(self, filename=False, load_mode=False):
        if not (filename):
            filename = input("Nhập tên file bạn muốn load")
        # try:
        with open(os.path.join(data_root, "{}.json".format(filename))) as f:
            data = json.load(f)
            self.filename = filename
            self.structuresInstance = []
            self.structuresData = []
            if not load_mode:
                load_mode = input("""
                1. Chỉ load data
                2. Load công trình và xây dựng
                """)
            for st in data['structures']:
                print(st)
                # try:
                temp = Structure.Structure(
                    mc,
                    vec3.Vec3(st['position']['x'], st['position']['y'],
                              st['position']['z']))
                if load_mode == "2":
                    temp.load(st['filename'])
                self.structuresData.append(st)
                self.structuresInstance.append(temp)

                #
                # except:
                #     print("File dữ liệu bị lỗi")
        pass
Esempio n. 3
0
    def add_struct(self, x=False, y=False, z=False, note=False, tags=[]):
        if not (type(x) is int and type(y) is int and type(z) is int):
            print(
                "bạn hãy nhập vị trí của bạn vào vị trí bạn muốn đặt công trình"
            )
            x = input('x = ')
            y = input('y = ')
            z = input('z = ')

        instance = Structure.Structure(mc, vec3.Vec3(int(x), int(y), int(z)))
        self.current = instance
        if not note:
            note = input("Hãy nhập vào ghi chú của bạn về công trình này")
        self.structuresInstance.append(instance)
        self.currentIndex = len(self.structuresInstance) - 1
        self.structuresData.append({
            "position": {
                "x": instance.position.x,
                "y": instance.position.y,
                "z": instance.position.z,
            },
            "note": note,
            "filename": instance.filename,
            "tags": tags,
        })
        return instance
        pass
Esempio n. 4
0
def spawnHouse(position, height, length):
    # already available to them
    direction = vec3.Vec3(1, 0, 0)
    # allows a pupil to give the height
    for j in range(0, height):
        # number of walls to create from spawnline
        for i in range(0, 4):
            position = spawnLine(position, direction, length,
                                 block.BRICK_BLOCK.id)
            direction = util.turnVectorClockwise(direction)
        # adds the height on to the next layer of the wall
        position.y += 1
Esempio n. 5
0
    def prompt_graph_shell(self):
        function = raw_input("y = ")
        x = input("x position: ")
        y = input("y position: ")
        z = input("z position: ")
        self.origin_pos = vec3.Vec3(x, y, z)
        self.xMin = input("xMin: ")
        self.xMax = input("xMax: ")
        self.yMin = input("yMin: ")
        self.yMax = input("yMax: ")

        self.setup_graph()
        self.draw_function(function)
Esempio n. 6
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)
Esempio n. 7
0
    def prompt_graph_mc(self, function):
        self.mc.postToChat(
            "Right click the ground with your sword to spawn a graph with the origin at that point."
        )
        mc.postToChat("Graph will be " + str(self.xMax - self.xMin) +
                      " units long and " + str(self.yMax - self.yMin) +
                      " units tall.")

        run = True
        while (run == True):
            evs = self.mc.events.pollBlockHits()
            for e in evs:
                self.origin_pos = vec3.Vec3(
                    e.pos.x, e.pos.y + ((self.yMax - self.yMin) / 2), e.pos.z)
                self.setup_graph()
                self.draw_function(function)
                run = False
Esempio n. 8
0
def BuildHouse(houseCenter,houseSize,mainMaterial):
    xSize=houseSize.x
    ySize=houseSize.y
    zSize=houseSize.z
    for i in range(-xSize,xSize+1):
        for j in range(ySize):
            setBlock(houseCenter+Vec3.Vec3(i,j,zSize),mainMaterial.id, 1)
            setBlock(houseCenter+Vec3.Vec3(i,j,-zSize),mainMaterial.id, 1)
    for i in range(-zSize,zSize+1):
        for j in range(ySize):
            setBlock(houseCenter+Vec3.Vec3(xSize,j,i),mainMaterial.id, 1)
            setBlock(houseCenter+Vec3.Vec3(-xSize,j,i),mainMaterial.id, 1)
    for i in range(-xSize,xSize+1):
        for j in range(-zSize,zSize+1):
            setBlock(houseCenter+Vec3.Vec3(i,ySize,j),block.AIR.id, 1)#top
            setBlock(houseCenter+Vec3.Vec3(i,0,j),mainMaterial.id, 1)#bottom
    halfX=int(xSize/2)
    halfY=int(ySize/2)
    halfZ=int(zSize/2)
    sizeWindow=int(ySize/3)
    for i in range(halfY-sizeWindow,halfY+1):
        for j in range(-1,2):
            setBlock(houseCenter+Vec3.Vec3(j,i,zSize),block.GLASS.id, 1)
Esempio n. 9
0
    def prompt_graph_mc_shell(self):
        function = raw_input("y = ")
        print("Waiting for user input in minecraft...")
        self.prompt_graph_mc(function)

    def prompt_graph_shell(self):
        function = raw_input("y = ")
        x = input("x position: ")
        y = input("y position: ")
        z = input("z position: ")
        self.origin_pos = vec3.Vec3(x, y, z)
        self.xMin = input("xMin: ")
        self.xMax = input("xMax: ")
        self.yMin = input("yMin: ")
        self.yMax = input("yMax: ")

        self.setup_graph()
        self.draw_function(function)

    def draw_function(self, function):
        """draws a function on the graph."""
        x = self.xMin * 1.0
        while (x < self.xMax):
            y = eval(function)
            self.plot_on_graph(x, y, 3)
            x += self.step


my_graph = Graph(vec3.Vec3(0, 0, 0), -20, 20, -20, 20, mc)
my_graph.prompt_graph_mc_shell()
Esempio n. 10
0
from mcpi import minecraft, block, vec3
from time import sleep

mc = minecraft.Minecraft.create()

ImHere = mc.player.getPos()  # get current player position

for woolColor in range(15):
    blockPosition = vec3.Vec3(ImHere.x - 2, ImHere.y, ImHere.z)
    mc.setBlock(blockPosition, block.WOOL.id, woolColor)
    sleep(1)
Esempio n. 11
0
 def deplacer_bloc(pos, direction):
     new_pos = vec3.Vec3(pos.x + direction.x, pos.y + direction.y,
                         pos.z + direction.z)
     creer_bloc(new_pos)
     return new_pos
Esempio n. 12
0
 def choisir_direction():
     return vec3.Vec3(randint(-1, 1), 0, randint(-1, 1))
Esempio n. 13
0
    def run(self):
        ## Clear some space
        self.mc.setBlocks(self.groundsOrigin.x, self.groundsOrigin.y,
                          self.groundsOrigin.z,
                          self.groundsOrigin.x + self.groundsSize.x - 1,
                          self.groundsOrigin.y + self.groundsSize.y - 1,
                          self.groundsOrigin.z + self.groundsSize.z - 1,
                          block.AIR)

        # Create a grounds (garden)
        floorOrigin = vec3.Vec3(self.groundsOrigin.x, self.groundsOrigin.y - 1,
                                self.groundsOrigin.z)
        self.mc.setBlocks(floorOrigin.x, floorOrigin.y, floorOrigin.z,
                          floorOrigin.x + self.groundsSize.x - 1,
                          floorOrigin.y,
                          floorOrigin.z + self.groundsSize.z - 1, block.GRASS)
        time.sleep(self.delay)

        # Build a house
        houseOrigin = vec3.Vec3(self.groundsOrigin.x + 1, self.groundsOrigin.y,
                                self.groundsOrigin.z + 1)
        self.mc.setBlocks(houseOrigin.x, houseOrigin.y, houseOrigin.z,
                          houseOrigin.x + self.houseSize.x - 1,
                          houseOrigin.y + self.houseSize.y - 1,
                          houseOrigin.z + self.houseSize.z - 1,
                          block.BRICK_BLOCK)
        time.sleep(self.delay)

        # Create a floor (inside only)
        floorOrigin = vec3.Vec3(self.groundsOrigin.x, self.groundsOrigin.y - 1,
                                self.groundsOrigin.z)
        self.mc.setBlocks(houseOrigin.x, houseOrigin.y - 1, houseOrigin.z,
                          houseOrigin.x + self.houseSize.x - 1,
                          houseOrigin.y - 1,
                          houseOrigin.z + self.houseSize.z - 1, block.STONE)
        time.sleep(self.delay)

        # Carve out house interior
        houseInteriorOrigin = vec3.Vec3(houseOrigin.x + 1, houseOrigin.y,
                                        houseOrigin.z + 1)
        self.mc.setBlocks(houseInteriorOrigin.x, houseInteriorOrigin.y,
                          houseInteriorOrigin.z,
                          houseInteriorOrigin.x + self.houseSize.x - 3,
                          houseInteriorOrigin.y + self.houseSize.y - 1,
                          houseInteriorOrigin.z + self.houseSize.z - 3,
                          block.AIR)
        time.sleep(self.delay)

        # Carve out door
        houseDoorOrigin = vec3.Vec3(houseOrigin.x + 2, houseOrigin.y,
                                    houseOrigin.z)
        self.mc.setBlocks(houseDoorOrigin.x, houseDoorOrigin.y,
                          houseDoorOrigin.z, houseDoorOrigin.x,
                          houseDoorOrigin.y + 1, houseDoorOrigin.z, block.AIR)
        time.sleep(self.delay)

        # Put a roof on
        roofOrigin = vec3.Vec3(houseOrigin.x, houseOrigin.y + self.houseSize.y,
                               houseOrigin.z)
        self.mc.setBlocks(roofOrigin.x, roofOrigin.y, roofOrigin.z,
                          roofOrigin.x + self.houseSize.x - 1, roofOrigin.y,
                          roofOrigin.z + self.houseSize.z - 1,
                          block.WOOD_PLANKS)
        time.sleep(self.delay)
Esempio n. 14
0
 def createPortal(self):
     # Create a portal at current position
     x,y,z = mc.player.getPos() # get current player position
     self.portalPosition = vec3.Vec3(x-2, y, z)
     mc.setBlock(self.portalPosition, block.GLOWSTONE_BLOCK.id ) # complete list of block types at https://www.stuffaboutcode.com/p/minecraft-api-reference.html
     self.portalAlert("{}: Created portal {}".format(self.color, self.portalNumber))
Esempio n. 15
0
import mcpi.minecraft as minecraft
import mcpi.block as block
import mcpi.vec3 as vec3
import time
from HouseThread import HouseThread

# Set some constants
groundsSize = vec3.Vec3(8, 8, 10)
houseSize = vec3.Vec3(5, 3, 6)
countX = 5
countZ = 2
delay = 0.3

## Connect to Minecraft
mc = minecraft.Minecraft.create()

## Clear a big space
mc.setBlocks(-10, -10, -10, countX * groundsSize.x, groundsSize.y,
             countZ * groundsSize.z, block.AIR)

# Create houses
for x in range(countX):
    for z in range(countZ):
        thisHouseOrigin = vec3.Vec3((x * groundsSize.x), 0,
                                    (z * groundsSize.z))
        HouseThread(delay, thisHouseOrigin, groundsSize, houseSize).start()
        time.sleep(delay)
Esempio n. 16
0
    direction = vec3.Vec3(1, 0, 0)
    # allows a pupil to give the height
    for j in range(0, height):
        # number of walls to create from spawnline
        for i in range(0, 4):
            position = spawnLine(position, direction, length,
                                 block.BRICK_BLOCK.id)
            direction = util.turnVectorClockwise(direction)
        # adds the height on to the next layer of the wall
        position.y += 1


# just calls the functions we want in order to build the house
#spawnLine(vec3.Vec3(30,0,0)
time.sleep(2)
spawnHouse(vec3.Vec3(0, 0, 0), 5, 10)
simpleRoof(vec3.Vec3(0, 5, 0), 10)


# building advanced roof, to iterate positively and negatively
def help(height):
    if height < 0:
        print("counting down")
        return range(height, 0)
    else:
        print("counting up")
        return range(0, height)


# advanced stuff - only advanced students should consider
def spawnAdvancedRoof(position, direction, height, length):
Esempio n. 17
0
def simpleRoof(position, length):
    for i in range(0, length):
        spawnLine(vec3.Vec3(position.x + i, position.y, position.z - 1),
                  vec3.Vec3(0, 0, 1), 11, block.WOOD_PLANKS.id)
Esempio n. 18
0
def turnVectorClockwise(vector):
    vector = vec3.Vec3(-vector.z, vector.y, vector.x)
    return vector
Esempio n. 19
0
import binvox_rw
import mcpi.block as block
import mcpi.vec3  as vec3
from mcpi.minecraft import Minecraft
import time

mc=Minecraft.create()

pos=vec3.Vec3()

pos.x = 9
pos.y = 15
pos.z = 102
clanPoss = [[0,0,0],[60,0,0],[60,0,60],[0,0,60]]
logoPoss=[[10,0,20],[10,0,20],[10,0,20],[10,0,20]]

logobinvox=["donut.binvox","guidaopao.binvox","mickey__mouse_hoofd.binvox","nanhun.binvox"]

mc.setBlocks(pos.x-10,pos.y,pos.z-10,pos.x+200,pos.y+40,pos.z+200,0)
#mc.setBlocks(pos.x-10,pos.y-1,pos.z-10,pos.x+120,pos.y,pos.z+120,1)

f = open("clanlist.csv","r")
data = f.read()
list_elements = data.split("\n")
clan_data=[]

for row in list_elements:
    split_list = row.split(',')
    clan_data.append(split_list)

class House:
Esempio n. 20
0
File: bomb.py Progetto: pyqqc/pmc
from mcpi.minecraft import Minecraft
import time
import mcpi.vec3 as vec3


mc=Minecraft.create("192.168.0.155",4711)
pos=vec3.Vec3(1,15,102)
a=0
b=0

x0=pos.x
y0=pos.y
z0=pos.z

def bomb (x0,y0,z0):
    for y in range(1):
        for x in range(1):
            for z in range(1):
                mc.setBlock(x0+x,y0+y,z0+z,46)
    for x in range(1):
            for z in range(1):
                mc.setBlock(pos.x+x+a,pos.y+1,pos.z+z,51)




for b in range(1000):
    if a <= 500:
        house(x0+a,y0,z0)
        a = a+5
        time.sleep(0.5)
Esempio n. 21
0
class House:
    vecZero = Vec3.Vec3(0, 0, 0)
    houseCenter = None
    houseSize = None
    mainMaterial = None
    built = False

    def __init__(self,
                 houseCenter=None,
                 houseSize=None,
                 buildNow=False,
                 material=materialList[0],
                 song=1,
                 useSerialport=True):
        print(houseCenter, houseSize)
        if houseCenter:
            self.houseCenter = houseCenter
        if houseSize:
            self.houseSize = houseSize
        if material:
            self.mainMaterial = material
        self.useSerialport = useSerialport
        if buildNow:
            self.build()
        self.song = song

    def _setBlock(self, vec, blockType, blockData):
        mc.setBlock(vec.x, vec.y, vec.z, blockType, blockData)

    def _getVec3(self, x, y, z):
        return Vec3.Vec3(x, y, z)

    def _build(self, mainMaterial, material2):
        xSize = houseSize.x
        ySize = houseSize.y
        zSize = houseSize.z
        for i in range(-xSize, xSize + 1):
            for j in range(ySize):
                self._setBlock(self.houseCenter + self._getVec3(i, j, zSize),
                               mainMaterial.id, 1)
                self._setBlock(self.houseCenter + self._getVec3(i, j, -zSize),
                               mainMaterial.id, 1)
        for i in range(-zSize, zSize + 1):
            for j in range(ySize):
                self._setBlock(self.houseCenter + self._getVec3(xSize, j, i),
                               mainMaterial.id, 1)
                self._setBlock(self.houseCenter + self._getVec3(-xSize, j, i),
                               mainMaterial.id, 1)
        for i in range(-xSize, xSize + 1):
            for j in range(-zSize, zSize + 1):
                self._setBlock(self.houseCenter + self._getVec3(i, ySize, j),
                               block.AIR.id, 1)  #top
                self._setBlock(self.houseCenter + self._getVec3(i, 0, j),
                               mainMaterial.id, 1)  #bottom
        halfY = int(ySize / 2)
        sizeWindow = int(ySize / 3)
        for i in range(halfY - sizeWindow, halfY + 1):
            for j in range(-1, 2):
                self._setBlock(self.houseCenter + self._getVec3(j, i, zSize),
                               material2.id, 1)

    def changeMaterial(self, material):
        self.mainMaterial = material
        if self.built:
            self.build()

    def build(self):
        if not (self.houseCenter and self.houseSize and self.mainMaterial):
            raise RoomException
        self._build(self.mainMaterial, block.GLASS)
        self.built = True

    def destroy(self):
        if self.built:
            self._build(block.AIR, block.AIR)
            self.built = False
        else:  #not built yet
            pass

    def _getPlayerPos(self):
        return mc.player.getTilePos()

    def ifPlayerIn(self):
        if not self.built:
            return False
        playerPos = self._getPlayerPos()

        # print(playerPos)
        # print(self.houseSize)
        if not (playerPos.y > (self.houseCenter.y) and playerPos.y <
                (self.houseCenter.y + self.houseSize.y - 2)):
            return False
        elif not (playerPos.x > self.houseCenter.x - self.houseSize.x
                  and playerPos.x < self.houseCenter.x + self.houseSize.x):
            # print("not X")
            return False
        elif not (playerPos.z > self.houseCenter.z - self.houseSize.z
                  and playerPos.z < self.houseCenter.z + self.houseSize.z):
            # print("not Z")
            return False
        else:
            if self.useSerialport:
                byteData = bytes([self.song])
                ser.write(byteData)
                ser.flush()
            return True

    def ChangeSong(self, newSong):
        self.song = newSong
Esempio n. 22
0
from mcpi.minecraft import Minecraft
import binvox_rw
import time
import csv
import mcpi.vec3 as vec3
import mcpi.block as block
import Jeff.build_house_hawaiistyle as MHouse

mc = Minecraft.create()

#pos=mc.player.getTilePos()
pos = vec3.Vec3(86, 47, 67)

mc.player.setTilePos(86, 47, 67)
stayed_time = 0

with open('xjergao.binvox', 'rb') as f:
    model = binvox_rw.read_as_3d_array(f)
print(model.dims)
print(model.scale)
print(model.translate)
#print(model.data)

for y in range(model.dims[1]):
    print("layer y=", y)
    layer_data = model.data[y]
    stringlayer = ""
    for x in range(model.dims[0]):
        stringlayer = stringlayer + "\n"
        for z in range(model.dims[2]):
            if model.data[x][z][y] == True:
Esempio n. 23
0
 def _getVec3(self, x, y, z):
     return Vec3.Vec3(x, y, z)
Esempio n. 24
0
 def __init__(self, thePortalNumber, theColor):
     self.portalNumber = thePortalNumber
     self.portalPosition = vec3.Vec3(0,0,0)
     self.color = theColor
     portalState.setPortal(self.portalNumber, False)
     self.portalAlert("Ready to create portal {}".format(self.portalNumber), theColor = 'white')

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


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)


playerPos = minecraft.player.getPos()
fireCannon(playerPos, vec3.Vec3(1, 0, 0))
Esempio n. 26
0
def Lau():

    # créé un bloc de laine de couleur aléatoire à la position
    def creer_bloc(pos):
        couleur = randint(0, 15)
        mc.setBlock(pos.x, pos.y, pos.z, 35, couleur)

    # teste si un bloc particulier existe autour d'une position
    def existe_autour(pos, id_block):
        for x in range(-1, 2):
            for y in range(-1, 2):
                for z in range(-1, 2):
                    if mc.getBlock(pos.x + x, pos.y + y,
                                   pos.z + z) == id_block:
                        return True
        return False

    # transforme les blocs d'un type présent dans id_blocks_src autour d'une position par un block spécifique + affichage d'un message
    def transforme_autour(pos, id_blocks_src, id_block_dest, message):
        for x in range(-1, 2):
            for y in range(-1, 2):
                for z in range(-1, 2):
                    if mc.getBlock(pos.x + x, pos.y + y,
                                   pos.z + z) in id_blocks_src:
                        mc.setBlock(pos.x + x, pos.y + y, pos.z + z,
                                    id_block_dest)
                        mc.postToChat(message)

    # créé un vecteur définissant une direction horizontale spécifique
    def choisir_direction():
        return vec3.Vec3(randint(-1, 1), 0, randint(-1, 1))

    # déplace le bloc d'une position dans une direction
    def deplacer_bloc(pos, direction):
        new_pos = vec3.Vec3(pos.x + direction.x, pos.y + direction.y,
                            pos.z + direction.z)
        creer_bloc(new_pos)
        return new_pos

    pos = vec3.Vec3(randint(-30, 30), -1, randint(-30, 30))
    creer_bloc(pos)
    print(pos)
    mc.postToChat("-=-= lancement evap'eau =-=-")

    pos_prec = pos
    direction = vec3.Vec3(0, 0, 0)
    nombre_deplacement = 0

    while not existe_autour(pos, 103):
        # pas de pastèque à proximité immédiate

        # l'eau est transformée en air
        transforme_autour(pos, [8, 9], 0, "pouf! evaporee...")
        # changement de direction tous les 10 déplacements
        if nombre_deplacement % 10 == 0:
            direction = choisir_direction()
        # on garde deux blocs pour la plaie, le bloc précédent est remplacé par une paquerette
        if pos_prec != pos:
            mc.setBlock(pos_prec.x, pos_prec.y, pos_prec.z, 37)
        pos_prec = pos
        pos = deplacer_bloc(pos_prec, direction)
        nombre_deplacement = nombre_deplacement + 1
        time.sleep(1)

    mc.postToChat("-=-= evap'eau terminee =-=-")
Esempio n. 27
0
import mcpi.minecraft as minecraft
import mcpi.block as block
import mcpi.vec3 as Vec3
mc = minecraft.Minecraft.create()
#pos = mc.player.getTilePos()#player location
pos=Vec3.Vec3(-6,0,49)
def setBlock(vec,blockType,blockData):
    mc.setBlock(vec.x,vec.y,vec.z,blockType, blockData)


vecForward=pos+Vec3.Vec3(2,0,3)
blockType = mc.getBlock(pos)
print(pos)
mc.events.pollChatPosts
houseX=8
houseZ=6
houseY=6
for i in range(-houseX-90,houseX+90):
    for j in range(8):
        for k in range(-houseZ-90,houseZ+90):
            pass
            #setBlock(pos+Vec3.Vec3(i,j,k),block.AIR.id, 1)


for i in range(-houseX-90,houseX+90):
    for j in range(-1,0):
        for k in range(-houseZ-90,houseZ+90):
            pass
            #setBlock(pos+Vec3.Vec3(i,j,k),block.DIRT.id, 3)

def BuildHouse(houseCenter,houseSize,mainMaterial):