Source code for demo.follow
from demo.shapes import pyramid
from mciwb.imports import Direction, Item, Monitor, Vec3, get_world
[docs]
class SpookyPyramid:
"""
Spooky Pyramid Class: draws a pyramid centred at pyramid_centre, made
of carved pumpkins that always turn to face the player
"""
def __init__(self, pyramid_centre, size=11, player=None):
self.pyramid_centre = Vec3(*pyramid_centre)
self.size = size
self.half = int(size / 2)
self.corner = (
self.pyramid_centre
+ Direction.SOUTH * self.half
+ Direction.WEST * self.half
)
self.old_direction = 0
self.world = get_world()
self.player = player or self.world.player
self.name = "spooky_pyramid_" + self.player.name
def stop(self):
Monitor.stop_named(self.name)
def go(self):
Monitor.stop_named(self.name)
Monitor(self.draw, name=self.name)
def draw(self):
direction = Direction.facing(self.pyramid_centre, self.player.pos)
if direction != self.old_direction:
self.old_direction = direction
pyramid(self.corner, self.size, Item.CARVED_PUMPKIN, facing=direction)