from mcpi.minecraft import Minecraft mc = Minecraft.create() import mcpi.block as block import minecraftstuff import time import datetime import math mcdrawing = minecraftstuff.MinecraftDrawing(mc) pos = mc.player.getTilePos() def findPointOnCircle(cx, су, radius, angle ) : x = cx + math. sin(math . radians(angle) ) * radius y = су + math .cos(math . radians(angle) ) * radius x = int(round(x, 0 ) ) y = int(round(y, 0 ) ) return (x,y) clockMiddle = pos clockMiddle .y = clockMiddle . y + 25 CLOCK_RADIUS = 20 HOUR_HAND_LENGTH = 10 MIN_HAND_LENGTH = 18 SEC_HAND_LENGTH = 20 mcdrawing.drawCircle(clockMiddle.x, clockMiddle.y,clockMiddle.z, CLOCK_RADIUS, block.DIAMOND_BLOCK.id) while True: timeNow = datetime.datetime.now() hours = timeNow.hour if hours >= 12: hours = timeNow.hour - 12 minutes = timeNow.minute seconds = timeNow.second hourHandAngle = (360 / 12) * hours hourHandX, hourHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y, HOUR_HAND_LENGTH, hourHandAngle) mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z, hourHandX, hourHandY, clockMiddle.z, block.DIRT.id) minHandAngle = (360 / 60) * minutes minHandX, minHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y,MIN_HAND_LENGTH, minHandAngle) mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z - 1,minHandX, minHandY, clockMiddle.z - 1,block.WOOD_PLANKS.id) secHandAngle = (360 / 60) * seconds secHandX, secHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y,SEC_HAND_LENGTH, secHandAngle) mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z + 1,secHandX, secHandY, clockMiddle.z + 1, block.STONE.id) time.sleep(1) mcdrawing.drawLine( clockMiddle.x, clockMiddle.y, clockMiddle.z,hourHandX, hourHandY, clockMiddle.z,block.AIR.id ) mcdrawing.drawLine( clockMiddle.x, clockMiddle.y, clockMiddle.z - 1, minHandX, minHandY, clockMiddle.z - 1,block.AIR.id) mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z + 1,secHandX, secHandY, clockMiddle.z + 1,block.AIR.id)