1 # Brassica rapa extraterrestrialus, the common space turnip
4 import pymunk.pygame_util
7 from .loader import loader
8 from .constants import TURNIP_CATEGORY, LIGHT_CATEGORY
11 TURNIP_FILTER = pymunk.ShapeFilter(
12 mask=pymunk.ShapeFilter.ALL_MASKS ^ LIGHT_CATEGORY,
13 categories=TURNIP_CATEGORY)
16 class TurnipInvalidPosition(Exception):
22 def __init__(self, **kwargs):
23 self._age = kwargs.get('age', 0)
24 self._pos = kwargs.get('pos', (0, 0))
25 space = kwargs.get('space', None)
27 self._body = pymunk.Body(0, 0, pymunk.Body.STATIC)
28 self._shape = pymunk.Circle(self._body, 16)
29 self._shape.filter = TURNIP_FILTER
30 self._body.position = pymunk.pygame_util.from_pygame(
31 self._pos, pygame.display.get_surface())
32 if space.shape_query(self._shape):
33 raise TurnipInvalidPosition()
34 space.add(self._body, self._shape)
36 def _update_image(self):
37 self._image = loader.load_image('32', 'turnip%d.png' % (self._age + 1))
39 def render(self, surface):
40 surface.blit(self._image, self._pos, None)
43 return {'age': self._age, 'pos': self._pos}
46 # FIXME: Remove body from the space
52 # Mature, so harvest it for seeds
53 return random.randint(1, 3)