Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
tileentities = nbtfile['TileEntities']
blocks = nbtfile['Blocks'].value
data = nbtfile['Data'].value
if len(blocks) != w*h*l:
print "Not matching."
exit(0)
pos = mc.player.getTilePos()
px = pos.x + 1
pz = pos.z + 1
py = mc.getHeight(px, pz)
mc.postToChat('Need to build ' + str(l) + ' levels');
mc.setBlocks(px, py, pz, px+w, py+h, pz+l, block.AIR.id)
opt = Optimizer(mc)
for y in range(0, h):
mc.postToChat('Level '+str(y))
for z in range(0, l):
for x in range(0, w):
idx = (y*l + z)*w +x
blockid = blocks[idx]
if (blockid == 0):
opt.flush()
continue
if (blockid in dynamicBlocks): # skip these the first time.
opt.flush()
continue
datum = data[idx]
def poleGry(self, x, y, z, roz=10):
"""Funkcja tworzy pole gry"""
podloga = block.STONE
wypelniacz = block.AIR
# podloga i czyszczenie
self.mc.setBlocks(x, y - 1, z, x + roz, y - 1, z + roz, podloga)
self.mc.setBlocks(x, y, z, x + roz, y + roz, z + roz, wypelniacz)
# granice pola
x = y = z = 0
for i in range(19):
for j in range(19):
if (i, j) in self.obstacle:
self.mc.setBlock(x + i, y, z + j, block.GRASS)
else: # tworzenie listy współrzędnych dozwolonych pól gry
self.plansza.append((x + i, z + j))
def model(promien, x, y, z):
"""
Fukcja buduje obrys kwadratu, którego środek to punkt x, y, z
oraz koło wpisane w ten kwadrat
"""
mcfig = mcstuff.MinecraftDrawing(mc)
obrys = block.SANDSTONE
wypelniacz = block.AIR
mc.setBlocks(x - promien, y, z - promien, x +
promien, y, z + promien, obrys)
mc.setBlocks(x - promien + 1, y, z - promien + 1, x +
promien - 1, y, z + promien - 1, wypelniacz)
mcfig.drawHorizontalCircle(0, 0, 0, promien, block.GRASS)
def poleGry(self, x, y, z, roz=10):
"""Funkcja tworzy pole gry"""
podloga = block.STONE
wypelniacz = block.AIR
# podloga i czyszczenie
self.mc.setBlocks(x, y - 1, z, x + roz, y - 1, z + roz, podloga)
self.mc.setBlocks(x, y, z, x + roz, y + roz, z + roz, wypelniacz)
# granice pola
x = y = z = 0
for i in range(19):
for j in range(19):
if (i, j) in self.obstacle:
self.mc.setBlock(x + i, y, z + j, block.GRASS)
else: # tworzenie listy współrzędnych dozwolonych pól gry
self.plansza.append((x + i, z + j))
def czyscPole(self):
"""Funkcja wypelnia blokami powietrza pole gry."""
for xz in self.plansza:
x, z = xz
self.mc.setBlock(x, 0, z, block.AIR)
def plac(self, x, y, z, szer=20, wys=10):
"""
Funkcja tworzy plac gry
"""
podloga = block.STONE
wypelniacz = block.AIR
granica = block.OBSIDIAN
# granica, podłoże, czyszczenie
self.mc.setBlocks(
x - 5, y, z - 5,
x + szer + 5, y + max(szer, wys), z + wys + 5, wypelniacz)
self.mc.setBlocks(
x - 1, y - 1, z - 1, x + szer + 1, y - 1, z + wys + 1, granica)
self.mc.setBlocks(x, y - 1, z, x + szer, y - 1, z + wys, podloga)
self.mc.setBlocks(
x, y, z, x + szer, y + max(szer, wys), z + wys, wypelniacz)
def czyscPole(self):
"""Funkcja wypelnia blokami powietrza pole gry."""
for xz in self.plansza:
x, z = xz
self.mc.setBlock(x, 0, z, block.AIR)
def plac(x, y, z, roz=10, gracz=False):
"""
Funkcja tworzy podłoże i wypełnia sześcienny obszar od podanej pozycji,
opcjonalnie umieszcza gracza w środku.
Parametry: x, y, z - współrzędne pozycji początkowej,
roz - rozmiar wypełnianej przestrzeni,
gracz - czy umieścić gracza w środku
Wymaga: globalnych obiektów mc i block.
"""
podloga = block.STONE
wypelniacz = block.AIR
# podloga i czyszczenie
mc.setBlocks(x, y - 1, z, x + roz, y - 1, z + roz, podloga)
mc.setBlocks(x, y, z, x + roz, y + roz, z + roz, wypelniacz)
# umieść gracza w środku
if gracz:
mc.player.setPos(x + roz / 2, y + roz / 2, z + roz / 2)
def plac(self, x, y, z, szer=20, wys=10):
"""
Funkcja tworzy plac gry
"""
podloga = block.STONE
wypelniacz = block.AIR
granica = block.OBSIDIAN
# granica, podłoże, czyszczenie
self.mc.setBlocks(
x - 5, y, z - 5,
x + szer + 5, y + max(szer, wys), z + wys + 5, wypelniacz)
self.mc.setBlocks(
x - 1, y - 1, z - 1, x + szer + 1, y - 1, z + wys + 1, granica)
self.mc.setBlocks(x, y - 1, z, x + szer, y - 1, z + wys, podloga)
self.mc.setBlocks(
x, y, z, x + szer, y + max(szer, wys), z + wys, wypelniacz)