Add a sensible license
[koperkapel.git] / koperkapel / actors / surf.py
1 """ Actor that takes a surface. """
2
3 from pgzero.actor import Actor, POS_TOPLEFT, ANCHOR_CENTER
4
5
6 class SurfActor(Actor):
7     def __init__(self, surf, pos=POS_TOPLEFT, anchor=ANCHOR_CENTER, **kwargs):
8         self._handle_unexpected_kwargs(kwargs)
9
10         self.surf = surf
11         # Initialise it at (0,0). We'll move it to the right place later
12         super(Actor, self).__init__((0, 0), self._surf.get_size())
13
14         self._init_position(pos, anchor, **kwargs)
15
16     def _update_pos(self):
17         p = self.pos
18         self.width, self.height = self._surf.get_size()
19         self._calc_anchor()
20         self.pos = p
21
22     @property
23     def surf(self):
24         """ The original surface displaying the actor. """
25         return self._orig_surf
26
27     @surf.setter
28     def surf(self, surf):
29         self._orig_surf = self._surf = surf
30         self._update_pos()