X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Factors%2Forientatedsurf.py;h=ce6f01b16a9f42955b43c95e92ffc2b826665570;hb=cd05c8cc786e2249538903a6c96886db3dec0832;hp=6db857035c518ec8ed84e08c104a2dc8bb8dc976;hpb=2b01e520d6299b5d8ea9451d924b01e87588792d;p=koperkapel.git diff --git a/koperkapel/actors/orientatedsurf.py b/koperkapel/actors/orientatedsurf.py index 6db8570..ce6f01b 100644 --- a/koperkapel/actors/orientatedsurf.py +++ b/koperkapel/actors/orientatedsurf.py @@ -22,6 +22,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 +38,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