From 04c5963c582d6ba364f8fc30899dfc817f419e82 Mon Sep 17 00:00:00 2001 From: Simon Cross Date: Tue, 6 Sep 2016 22:33:35 +0200 Subject: [PATCH] Lights can now be turned on and off at night. --- tabakrolletjie/lights.py | 7 ++++++- tabakrolletjie/scenes/day.py | 12 +----------- tabakrolletjie/scenes/night.py | 6 +++--- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/tabakrolletjie/lights.py b/tabakrolletjie/lights.py index 54da531..ff7035a 100644 --- a/tabakrolletjie/lights.py +++ b/tabakrolletjie/lights.py @@ -74,7 +74,12 @@ class LightManager(object): for light in self._lights: light.add(self._space) - def nearest(self, pos, surfpos=False, max_distance=1.0): + def toggle_nearest(self, *args, **kw): + light = self.nearest(*args, **kw) + if light: + light.toggle() + + def nearest(self, pos, surfpos=True, max_distance=1.0): if surfpos: surface = pygame.display.get_surface() pos = pymunk.pygame_util.from_pygame(pos, surface) diff --git a/tabakrolletjie/scenes/day.py b/tabakrolletjie/scenes/day.py index 26440ef..816a859 100644 --- a/tabakrolletjie/scenes/day.py +++ b/tabakrolletjie/scenes/day.py @@ -25,14 +25,6 @@ class DayScene(BaseScene): self._obstacles.render(surface) self._lights.render_fittings(surface) - def left_click(self, pos): - light = self._lights.nearest(pos, surfpos=True) - if light: - light.toggle() - - 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): @@ -40,9 +32,7 @@ class DayScene(BaseScene): SceneChangeEvent.post(scene=MenuScene()) elif ev.type == pgl.MOUSEBUTTONDOWN: if ev.button == 1: - self.left_click(ev.pos) - elif ev.button == 3: - self.right_click(ev.pos) + self._lights.toggle_nearest(ev.pos) @debug_timer("day.tick") def tick(self, gamestate): diff --git a/tabakrolletjie/scenes/night.py b/tabakrolletjie/scenes/night.py index c558fc0..6c30603 100644 --- a/tabakrolletjie/scenes/night.py +++ b/tabakrolletjie/scenes/night.py @@ -32,9 +32,9 @@ class NightScene(BaseScene): if ev.key in (pgl.K_q, pgl.K_ESCAPE): from .menu import MenuScene SceneChangeEvent.post(scene=MenuScene()) - elif ev.key == pgl.K_t: - for light in self._lights: - light.toggle() + elif ev.type == pgl.MOUSEBUTTONDOWN: + if ev.button == 1: + self._lights.toggle_nearest(ev.pos) @debug_timer("night.tick") def tick(self, gamestate): -- 2.34.1