X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Factors%2Forientatedsurf.py;h=284ac71f2e5779e48812b975e91e762fd47a6564;hb=b84add9e04e7a5ac7832cb97b0ff83586eb716fb;hp=6db857035c518ec8ed84e08c104a2dc8bb8dc976;hpb=2b01e520d6299b5d8ea9451d924b01e87588792d;p=koperkapel.git diff --git a/koperkapel/actors/orientatedsurf.py b/koperkapel/actors/orientatedsurf.py index 6db8570..284ac71 100644 --- a/koperkapel/actors/orientatedsurf.py +++ b/koperkapel/actors/orientatedsurf.py @@ -4,6 +4,7 @@ from pygame.transform import rotate from pgzero.actor import POS_TOPLEFT, ANCHOR_CENTER from .surf import SurfActor +from ..constants import TILE_SIZE class OrientatedSurfActor(SurfActor): @@ -22,6 +23,9 @@ class OrientatedSurfActor(SurfActor): @angle.setter def angle(self, angle): + cur_anchor = self._anchor_value + if angle not in (self._angle, self._angle + 180, self._angle - 180): + self._anchor_value = (cur_anchor[1], cur_anchor[0]) self._angle = angle self._surf = self._orig_surf = rotate(self._base_surf, angle) @@ -35,3 +39,20 @@ class OrientatedSurfActor(SurfActor): self._base_surf = surf self._orig_surf = self._surf = rotate(surf, self._angle) self._update_pos() + + +class SelectableSurfActor(OrientatedSurfActor): + def __init__(self, seat, selected_seat): + self._selected = False + self._seat = seat + self._selected_seat = selected_seat + super().__init__(surf=self._seat, angle=0) + + @property + def selected(self): + return self._selected + + @selected.setter + def selected(self, value): + self._selected = value + self.surf = self._selected_seat if value else self._seat