Fetch pygame polys from ray manager.
authorSimon Cross <hodgestar@gmail.com>
Wed, 7 Sep 2016 20:11:27 +0000 (22:11 +0200)
committerSimon Cross <hodgestar@gmail.com>
Wed, 7 Sep 2016 20:11:27 +0000 (22:11 +0200)
tabakrolletjie/lights.py
tabakrolletjie/rays.py

index 39b1815fc782b02972ef9d91233d44d7b9b739d8..c143b98862326dc385658b53998934d45b7ff179 100644 (file)
@@ -155,12 +155,7 @@ class BaseLight(object):
         white, black = (255, 255, 255), (0, 0, 0)
 
         ray_mask.fill(black)
-        for shape in self.body.shapes:
-            if shape is self.fitting:
-                continue
-            pygame_poly = [
-                pymunk.pygame_util.to_pygame(v, surface) for v in
-                shape.get_vertices()]
+        for pygame_poly in self.ray_manager.pygame_polys(surface):
             pygame.draw.polygon(ray_mask, white, pygame_poly, 0)
             pygame.draw.aalines(ray_mask, white, True, pygame_poly, 1)
 
index d6d0a695db90556a29f98ffc958798aac5e8c2a8..f7e69cc32d36b27c502daeba340ab307adaa32c5 100644 (file)
@@ -67,6 +67,9 @@ class RayPolyManager(object):
     def polys(self):
         return [rp.poly(self._body, self._ray_filter) for rp in self._rays]
 
+    def pygame_polys(self, surface):
+        return [rp.pygame_poly(surface) for rp in self._rays]
+
 
 class RayPoly(object):
     def __init__(self, start, end, vertices):
@@ -78,3 +81,9 @@ class RayPoly(object):
         shape = pymunk.Poly(body, self.vertices)
         shape.filter = filter
         return shape
+
+    def pygame_poly(self, surface):
+        return [
+            pymunk.pygame_util.to_pygame(v, surface)
+            for v in self.vertices
+        ]