Add transform support to cursor and image buttons
[tabakrolletjie.git] / tabakrolletjie / scenes / base.py
index 3b0f60a8ff1e019a615f211ec88d3f34aa6ba987..566c325555190dd5c78ff3c9a813306f0ba76f9a 100644 (file)
@@ -1,6 +1,26 @@
 """ Base scene class. """
 
+from pygame.sprite import RenderUpdates
+from ..cursor import Cursor
+
+
 class BaseScene(object):
+    def __init__(self):
+        self._cursor = Cursor()
+        self._cursor_group = RenderUpdates()
+
+    def _set_cursor(self, name, transform=None):
+        self._cursor.activate(name, self._cursor_group, transform=transform)
+
+    def _unset_cursor(self):
+        self._cursor.deactivate(self._cursor_group)
+
+    def _draw_cursor(self, surface):
+        """Draw the cursor. Should be called at the end of the render
+           method by scenes that need it."""
+        self._cursor_group.update()
+        self._cursor_group.draw(surface)
+
     def enter(self, gamestate):
         """ Enter the scene. """
 
@@ -12,3 +32,6 @@ class BaseScene(object):
 
     def render(self, screen, gamestate):
         """ Render the scene. """
+
+    def tick(self, gamestate):
+        """ Update the world based on time """