# HG changeset patch # User Simon Cross # Date 1258820268 0 # Node ID e89a1afe4e84fcccd671a6e01e7700495f65fc11 # Parent d34be925b9fcb74af20ce6d953b75b6e08e398d2 Make Position simplifiable. Override unsimplify for animals to update their image after recreating. diff -r d34be925b9fc -r e89a1afe4e84 gamelib/animal.py --- a/gamelib/animal.py Sat Nov 21 15:58:54 2009 +0000 +++ b/gamelib/animal.py Sat Nov 21 16:17:48 2009 +0000 @@ -54,6 +54,13 @@ return cls((0, 0)) make = classmethod(make) + def unsimplify(cls, value): + """Override default Simplifiable unsimplification.""" + obj = super(Animal, cls).unsimplify(value) + obj.redraw() + return obj + unsimplify = classmethod(unsimplify) + def loop(self, tv, _sprite): ppos = tv.tile_to_view(self.pos.to_tile_tuple()) self.rect.x = ppos[0] diff -r d34be925b9fc -r e89a1afe4e84 gamelib/misc.py --- a/gamelib/misc.py Sat Nov 21 15:58:54 2009 +0000 +++ b/gamelib/misc.py Sat Nov 21 16:17:48 2009 +0000 @@ -5,9 +5,13 @@ from pygame.locals import KEYDOWN, K_ESCAPE from pgu import gui -class Position(object): +import serializer + +class Position(serializer.Simplifiable): """2D position / vector""" + SIMPLIFY = ['x', 'y', 'z'] + def __init__(self, x, y, z=0): self.x = x self.y = y