https://pastein.ru/t/8KV

  скопируйте уникальную ссылку для отправки


from mcpi.minecraft import Minecraft
from collections.abc import Iterable
import time
import collections
import minecraftstuff
import mcpi.block as block

collections.Iterable = Iterable

# Создаем подключение к Minecraft
mc = Minecraft.create()
mcdrawing = minecraftstuff.MinecraftDrawing(mc)

# Создаем список блоков для судна
skateboardBlocks = []

# Добавляем блоки для создания квадрата (4 фиолетовые плиты)
skateboardBlocks.append(minecraftstuff.ShapeBlock(-1, 1, 0, block.Block(44, 6)))
skateboardBlocks.append(minecraftstuff.ShapeBlock(0, 1, 0, block.Block(44, 6)))
skateboardBlocks.append(minecraftstuff.ShapeBlock(-1, 1, -1, block.Block(44, 6)))
skateboardBlocks.append(minecraftstuff.ShapeBlock(0, 1, -1, block.Block(44, 6)))

# Остальной код остается неизменным
pos = mc.player.getTilePos()
mc.player.setTilePos(pos.x, 150, pos.z)

planePos = mc.player.getTilePos()
planePos.x += 2
planeShape = minecraftstuff.MinecraftShape(mc, planePos, skateboardBlocks)

x = -1
y = -1
z = 0

isExit = False
inPlane = False

# Выводим приветственные сообщения
mc.postToChat("Добро пожаловать в Симулятор полёта в Minecraft.")
mc.postToChat("Твоя задача - высоко лететь в небе и держаться подальше от суши.")
mc.postToChat("Управление осуществляется через чат.")
mc.postToChat("q - ЗАПУСК ДВИГАТЕЛЯ")
mc.postToChat("w - вверх.")
mc.postToChat("s - вниз.")
mc.postToChat("a - влево.")
mc.postToChat("d - вправо.")
mc.postToChat("end - завершить игру.")
mc.postToChat("v - переключить обзор камеры.")

while True:
    b = mc.getBlock(planePos.x, planePos.y - 1, planePos.z)
    planeShape.moveBy(x, y, z)
    time.sleep(0.5)

    if inPlane:
        mc.player.setTilePos(planePos.x, planePos.y + 3, planePos.z)

    # Проверяем события чата для управления самолетом
    chat = mc.events.pollChatPosts()
    for c in chat:
        m = c.message
        if m == "s":
            mc.postToChat("Направление вниз.")
            y = -1
        elif m == "w":
            mc.postToChat("Направление вверх.")
            y = 1
        elif m == "d":
            mc.postToChat("Поворот направо.")
            z = -1
        elif m == "a":
            mc.postToChat("Поворот налево.")
            z = 1
        elif m == "q":
            mc.postToChat("Курс прямо.")
            y = 0
            z = 0
        elif m == "end":
            mc.postToChat("До свидания!")
            planeShape.clear()
            isExit = True
        elif m == "v":
            mc.postToChat("Обзор камеры изменен!")
            inPlane = not inPlane

    # Проверяем столкновение с поверхностью
    if b != block.AIR.id:
        mc.postToChat("Судно потерпело крушение!!! Всем покинуть свои места!!!")
        x = planePos.x
        y = planePos.y
        z = planePos.z
        mc.setBlocks(x + 10, y + 1, z, x, y + 1, z, block.TNT.id)
        mc.setBlocks(x + 10, y + 2, z, x, y + 2, z, block.FIRE.id)
        isExit = True

    if isExit:
        break