54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
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) |