Add broken click handling.
authorSimon Cross <hodgestar@gmail.com>
Tue, 6 Sep 2016 19:44:40 +0000 (21:44 +0200)
committerSimon Cross <hodgestar@gmail.com>
Tue, 6 Sep 2016 19:44:40 +0000 (21:44 +0200)
tabakrolletjie/scenes/day.py

index 31590d4bb3558eb3363edc0ea918cb909b0ffcda..9d410c2a1172abba7e1c568eb4a52418eb887215 100644 (file)
@@ -1,15 +1,20 @@
 """ Be prepared. """
 
+import pygame.display
 import pygame.locals as pgl
 
 import pymunk
+import pymunk.pygame_util
 
 from .base import BaseScene
+from ..constants import FITTINGS_CATEGORY
 from ..lights import BaseLight
 from ..obstacles import BaseObstacle
 from ..events import SceneChangeEvent
 from ..utils import debug_timer
 
+CLICK_FILTER = pymunk.ShapeFilter(mask=FITTINGS_CATEGORY)
+
 
 class DayScene(BaseScene):
     def enter(self, gamestate):
@@ -33,6 +38,16 @@ class DayScene(BaseScene):
         for light in self._lights:
             light.render_fittings(surface)
 
+    def left_click(self, surfpos):
+        print "LEFT"
+        pos = pymunk.pygame_util.from_pygame(
+            surfpos, pygame.display.get_surface())
+        print surfpos, pos
+        print self._space.point_query(pos, 1.0, CLICK_FILTER)
+
+    def right_click(self, pos):
+        pass
+
     def event(self, ev, gamestate):
         if ev.type == pgl.KEYDOWN:
             if ev.key in (pgl.K_q, pgl.K_ESCAPE):
@@ -41,6 +56,11 @@ class DayScene(BaseScene):
             elif ev.key == pgl.K_t:
                 for light in self._lights:
                     light.toggle()
+        elif ev.type == pgl.MOUSEBUTTONDOWN:
+            if ev.button == 1:
+                self.left_click(ev.pos)
+            elif ev.button == 3:
+                self.right_click(ev.pos)
 
     @debug_timer("day.tick")
     def tick(self, gamestate):