from mcpi.minecraft import Minecraft
from collections.abc import Iterable
import time
import collections
import minecraftstuff
import mcpi.block as block
collections.Iterable = Iterable
mc = Minecraft.create()
pos = mc.player.getTilePos()
pos.y = 59
sub = [
minecraftstuff.ShapeBlock(0, 0, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(1, 0, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(-1, 0, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(-2, 1, 0, block.GLASS.id),
minecraftstuff.ShapeBlock(-1, 1, 1, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(-1, 1, -1, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(0, 1, -1, block.GLASS.id),
minecraftstuff.ShapeBlock(0, 1, 1, block.GLASS.id),
minecraftstuff.ShapeBlock(1, 1, -1, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(1, 1, 1, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(2, 1, -1, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(2, 1, 1, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(2, 1, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(0, 2, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(1, 2, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(-1, 2, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(2, 2, 0, block.IRON_BLOCK.id),
minecraftstuff.ShapeBlock(1, 3, 0, block.DIAMOND_BLOCK.id),
minecraftstuff.ShapeBlock(1, 4, 0, block.DIAMOND_BLOCK.id),
minecraftstuff.ShapeBlock(0, 4, 0, block.DIAMOND_BLOCK.id),
]
subShape = minecraftstuff.MinecraftShape(mc, pos, sub)
xSub = 0
ySub = 0
zSub = 0
over = False
t = 1
mc.postToChat("Добро пожаловать! Ты диспетчер подводной лодки!")
mc.postToChat("Твоя задача - не врезаться и не всплывать слишком высоко!")
mc.postToChat("Иначе проиграешь!")
time.sleep(5)
mc.postToChat("Управление в чате:")
mc.postToChat("start: запустить лодку")
mc.postToChat("stop: остановить лодку")
mc.postToChat("up: плыть вверх")
mc.postToChat("down: плыть вниз")
mc.postToChat("mid: плыть прямо")
mc.postToChat("s1: первая скорость")
mc.postToChat("s2: вторая скорость")
mc.postToChat("s3: третья скорость")
mc.postToChat("control: управление лодкой")
mc.postToChat("exit: выйти")
time.sleep(5)
mc.postToChat("Игра началась!")
while True:
time.sleep(t)
b = mc.getBlock(pos.x - 2, pos.y + 3, pos.z)
subShape.moveBy(xSub, ySub, zSub)
chat = mc.events.pollChatPosts()
for c in chat:
m = c.message
if m == "start":
xSub = -1
mc.postToChat("Запускаю двигатель!")
elif m == "stop":
xSub = 0
elif m == "up":
ySub = 1
elif m == "down":
ySub = -1
elif m == "mid":
ySub = 0
elif m == "s1":
t = 1
elif m == "s2":
t = 0.5
elif m == "s3":
t = 0.1
elif m == "control":
mc.postToChat("Управление в чате:")
mc.postToChat("start: запустить лодку")
mc.postToChat("stop: остановить лодку")
mc.postToChat("up: плыть вверх")
mc.postToChat("down: плыть вниз")
mc.postToChat("mid: плыть прямо")
mc.postToChat("s1: первая скорость")
mc.postToChat("s2: вторая скорость")
mc.postToChat("s3: третья скорость")
mc.postToChat("control: управление лодкой")
mc.postToChat("exit: выйти")
elif m == "exit":
subShape.clear()
over = True
if b != block.WATER_STATIONARY.id:
mc.postToChat("---------------")
mc.postToChat("Ты проиграл!!!")
mc.postToChat("---------------")
time.sleep(3)
subShape.clear()
break
if over:
break