X-Git-Url: https://git.ctpug.org.za/?p=tabakrolletjie.git;a=blobdiff_plain;f=tabakrolletjie%2Flights.py;h=27365095fe1d745f0817f89406bc71f4f67bfc3e;hp=8ef12655ed5da1958a6187a474c8e9c69ea77cf7;hb=4b40709e4dcc9c9924a93f6c4b5cfd8217c4d2af;hpb=d222b3e3c02b3cfb3ddcd665f6c0a21619f25223 diff --git a/tabakrolletjie/lights.py b/tabakrolletjie/lights.py index 8ef1265..2736509 100644 --- a/tabakrolletjie/lights.py +++ b/tabakrolletjie/lights.py @@ -11,7 +11,9 @@ import pygame.locals as pgl import pygame.rect import pygame.transform -from .constants import LIGHT_CATEGORY, FITTINGS_CATEGORY, COLOURS +from .constants import ( + LIGHT_CATEGORY, FITTINGS_CATEGORY, OBSTACLE_CATEGORY, TURNIP_CATEGORY, + COLOURS) from .rays import RayPolyManager from .utils import DetailedTimer from .loader import loader @@ -29,6 +31,16 @@ FITTINGS_FILTER = pymunk.ShapeFilter( # Just match lights, nothing else LIT_BY_FILTER = pymunk.ShapeFilter(mask=LIGHT_CATEGORY) +SPACE_FOR_LIGHT_FILTER = pymunk.ShapeFilter( + mask=FITTINGS_CATEGORY | OBSTACLE_CATEGORY | TURNIP_CATEGORY) + + +def check_space_for_light(space, pos, max_distance): + point_info = space.point_query_nearest( + pos, max_distance, SPACE_FOR_LIGHT_FILTER) + if point_info is not None: + return True + return False class LightManager(object):