Link d'entités à l'event sheduler
This commit is contained in:
parent
00e72f4367
commit
b424bf7aa2
|
@ -1,6 +1,7 @@
|
||||||
from types import FunctionType
|
from types import FunctionType
|
||||||
|
|
||||||
import src.engine.engine
|
import src.engine.engine
|
||||||
|
from src.engine.entity import Entity
|
||||||
|
|
||||||
|
|
||||||
class EventSheduler:
|
class EventSheduler:
|
||||||
|
@ -9,8 +10,9 @@ class EventSheduler:
|
||||||
self.area_callbacks = []
|
self.area_callbacks = []
|
||||||
self.engine = engine
|
self.engine = engine
|
||||||
|
|
||||||
def register_area(self, area_rect: tuple[int, int, int, int], callback: FunctionType | classmethod | staticmethod):
|
def register_area(self, area_rect: tuple[int, int, int, int], callback: FunctionType | classmethod | staticmethod,
|
||||||
self.area_callbacks.append((area_rect, callback))
|
linked_entities_name: list[Entity]):
|
||||||
|
self.area_callbacks.append((area_rect, callback, linked_entities_name))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_collisions_with_entity(rect: tuple[int, int, int, int], entity: 'Entity'):
|
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])
|
rect[1] <= entity.y+entity.collision_rect[3])
|
||||||
|
|
||||||
def update(self):
|
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:
|
for area in self.area_callbacks:
|
||||||
area_rect = area[0]
|
# On itère dans toutes les entités enregistrées
|
||||||
|
for entity in area[2]:
|
||||||
if self.get_collisions_with_entity(area_rect, self.engine.entity_manager.get_by_name("player")):
|
if self.get_collisions_with_entity(area[0], self.engine.entity_manager.get_by_name(entity)):
|
||||||
print("oui")
|
area[1](entity)
|
||||||
|
|
||||||
else:
|
|
||||||
print("non")
|
|
||||||
|
|
Loading…
Reference in a new issue