From b424bf7aa2bc460ee05eceeff8a33fd633a39701 Mon Sep 17 00:00:00 2001 From: Yannis300307 Date: Fri, 5 Jan 2024 18:37:05 +0100 Subject: [PATCH] =?UTF-8?q?Link=20d'entit=C3=A9s=20=C3=A0=20l'event=20shed?= =?UTF-8?q?uler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/event_sheduler.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/engine/event_sheduler.py b/src/engine/event_sheduler.py index 1056eb3..561d19f 100644 --- a/src/engine/event_sheduler.py +++ b/src/engine/event_sheduler.py @@ -1,6 +1,7 @@ from types import FunctionType import src.engine.engine +from src.engine.entity import Entity class EventSheduler: @@ -9,8 +10,9 @@ class EventSheduler: self.area_callbacks = [] self.engine = engine - def register_area(self, area_rect: tuple[int, int, int, int], callback: FunctionType | classmethod | staticmethod): - self.area_callbacks.append((area_rect, callback)) + def register_area(self, area_rect: tuple[int, int, int, int], callback: FunctionType | classmethod | staticmethod, + linked_entities_name: list[Entity]): + self.area_callbacks.append((area_rect, callback, linked_entities_name)) @staticmethod def get_collisions_with_entity(rect: tuple[int, int, int, int], entity: 'Entity'): @@ -21,11 +23,11 @@ class EventSheduler: rect[1] <= entity.y+entity.collision_rect[3]) def update(self): + """Met à jour l'event sheluder et execute les actions si les conditions à son execution sont respéctées.""" + + # On itère dans la liste des zones de détection for area in self.area_callbacks: - area_rect = area[0] - - if self.get_collisions_with_entity(area_rect, self.engine.entity_manager.get_by_name("player")): - print("oui") - - else: - print("non") + # On itère dans toutes les entités enregistrées + for entity in area[2]: + if self.get_collisions_with_entity(area[0], self.engine.entity_manager.get_by_name(entity)): + area[1](entity)