From a6b717935fba44a9ebd8748aa01e8abe2dc9230c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Czeka=C5=84ski?= Date: Sun, 26 Apr 2020 18:45:07 +0200 Subject: [PATCH] Extract clicks on collidables to new method - make code clear --- src/game/EventManager.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/game/EventManager.py b/src/game/EventManager.py index 9bfde4c..c745a71 100644 --- a/src/game/EventManager.py +++ b/src/game/EventManager.py @@ -42,19 +42,7 @@ class EventManager: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() - # get a list of all sprites that are under the mouse cursor - clicked_collidables = [s for s in self.game.map.collidables if s.rect.collidepoint(pos)] - # do something with the clicked sprites... - if len(clicked_collidables) > 0: - self.game.movement.gotoToTarget(Random().choice(clicked_collidables)) - else: - clicked_terrains = [tile for tile in self.game.map.terrainTilesList if tile.rect.collidepoint(pos)] - if len(clicked_terrains) > 0: - print("Terrains under clik:") - for terrain in clicked_terrains: - print(terrain) - else: - print("NO TERRAIN FOUND UNDER CLICK") + self.handleClickingOnCollidablesAndTerrains(pos) self.game.screen.ui.updateBasedOnPygameEvent(event) self.keyTimeout += self.keyTimer.tick() @@ -68,6 +56,22 @@ class EventManager: self.game.screen.ui.updateBarsBasedOnPlayerStats(self.player.statistics) + def handleClickingOnCollidablesAndTerrains(self, pos): + # get a list of all collidables that are under the mouse cursor + clicked_collidables = [s for s in self.game.map.collidables if s.rect.collidepoint(pos)] + + if len(clicked_collidables) > 0: + self.game.movement.gotoToTarget(Random().choice(clicked_collidables)) + else: + # get a list of all terrains that are under the mouse cursor + clicked_terrains = [tile for tile in self.game.map.terrainTilesList if tile.rect.collidepoint(pos)] + if len(clicked_terrains) > 0: + print("Terrains under clik:") + for terrain in clicked_terrains: + print(terrain) + else: + print("NO TERRAIN FOUND UNDER CLICK") + def handlePlayerControls(self, keys): # Key names are temporary # TODO: Load key bindings from JSON