1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#
# Code under the MIT license by Alexander Pruss
#
from drawing import *
import time
d = Drawing()
class Hand:
def __init__(self, center, scale, length, width, material, backMaterial):
self.center = center
self.length = length
self.width = width
self.scale = scale
self.previousValue = None
self.material = material
self.backMaterial = backMaterial
def update(self, value):
d.penwidth(self.width)
if self.previousValue != None and self.previousValue != value:
self.drawLine(self.previousValue, self.backMaterial)
self.drawLine(value, self.material)
self.previousValue = value
def drawLine(self, value, block):
angle = pi / 2 - (value % self.scale) * 2 * pi / self.scale
d.line(self.center[0],self.center[1],self.center[2],
self.center[0] + self.length * cos(angle),
self.center[1] + self.length * sin(angle),
self.center[2], block)
radius = 20
playerPos = d.mc.player.getPos();
center = (playerPos.x, playerPos.y + radius, playerPos.z - radius)
for x in range(-radius, radius+1):
for y in range(-radius, radius+1):
if x**2+y**2 <= radius**2:
d.point(center[0]+x, center[1]+y, center[2]-3, WOOL_BLACK)
d.penwidth(1)
for tick in range(0,12):
d.line(center[0]+0.85*radius*cos(tick * 2 * pi / 12),center[1]+0.85*radius*sin(tick * 2 * pi / 12), center[2]-3,
center[0]+radius*cos(tick * 2 * pi / 12),center[1]+radius*sin(tick * 2 * pi / 12), center[2]-3,
WOOL_BLUE)
hourHand = Hand(center, 12, radius * 0.5, 3, GOLD_BLOCK, AIR)
minuteHand = Hand(center, 60, radius * 0.8, 2, GOLD_BLOCK, AIR)
secondHand = Hand((center[0],center[1],center[2]+1), 60, radius * 0.8, 1, WOOL_RED, AIR)
while True:
t = time.localtime()
hourHand.update(t[3])
minuteHand.update(t[4])
secondHand.update(t[5])
time.sleep(1)
|