62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
from mcpi.minecraft import Minecraft
|
||
mc = Minecraft.create()
|
||
|
||
def sortPair(val1, val2):
|
||
if val1 > val2:
|
||
return val2, val1
|
||
else:
|
||
return val1, val2
|
||
|
||
def copyStructure(x1, y1, z1, x2, y2, z2):
|
||
x1, x2 = sortPair(x1, x2)
|
||
y1, y2 = sortPair(y1, y2)
|
||
z1, z2 = sortPair(z1, z2)
|
||
|
||
width = x2 - x1
|
||
height = y2 - y1
|
||
length = z2 - z1
|
||
|
||
structure = []
|
||
|
||
print("Подождите, пока мы смотрим видео про котиков и заставляем себя начать копировать блоки воздуха, которые вы случайно добавили в пространство копирования, в список")
|
||
print("ЧТО? Так быстро закончилось видео? Ну ладно, начинаем. А вы пока покормите своих оцелотов")
|
||
|
||
for row in range(height):
|
||
structure.append([])
|
||
for column in range(width):
|
||
structure[row].append([])
|
||
for depth in range(length):
|
||
block = mc.getBlock(x1 + column, y1 + row, z1 + depth)
|
||
structure[row][column].append(block)
|
||
return structure
|
||
|
||
|
||
def buildStructure(x, y, z, structure):
|
||
xStart = x
|
||
zStart = z
|
||
for row in structure:
|
||
for column in reversed(row):
|
||
for block in column:
|
||
mc.setBlock(x, y, z, block)
|
||
z += 1
|
||
x += 1
|
||
z = zStart
|
||
y += 1
|
||
x = xStart
|
||
|
||
|
||
input("Подойдите к одному углу констукции и нажмите ")
|
||
pos = mc.player.getTilePos()
|
||
x1, y1, z1 = pos.x, pos.y, pos.z
|
||
|
||
input("Подойдите к противоположному углу и нажмите ")
|
||
pos = mc.player.getTilePos()
|
||
x2, y2, z2 = pos.x, pos.y, pos.z
|
||
|
||
structure = copyStructure(x1, y1, z1, x2, y2, z2)
|
||
|
||
input("Мы закончили страдать фигней, и делать что-то вместо копирования(даже как-то успели все скопировать), поэтому подойдите к месту, куда хотите поставить постройку и нажмите тут ")
|
||
pos = mc.player.getTilePos()
|
||
x, y, z = pos.x, pos.y, pos.z
|
||
buildStructure(x, y, z, structure)
|
||
print("СМОТРИТЕ" + str(structure) + " - это тот список в который мы засунули блоки") |