Hack in support for tool cursors
[tabakrolletjie.git] / tabakrolletjie / scenes / base.py
index 3b0f60a8ff1e019a615f211ec88d3f34aa6ba987..320ff8006b312abe49f96fe7af021472f9e82605 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):
+        self._cursor.activate(name, self._cursor_group)
+
+    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 """