Edited .pause() function to lock all unlocked entity instead of blocking update function, and .resume() to unlock only non-locked entity before pause
This commit is contained in:
parent
15565c6712
commit
1f8444bc0b
|
@ -8,6 +8,7 @@ class EntityManager:
|
|||
self.entities: dict[str:Entity] = {}
|
||||
self.player_entity_name = ""
|
||||
self.map_manager = map_manager
|
||||
self.locked_before_pause: list[Entity] = []
|
||||
self.paused = False
|
||||
|
||||
def register_entity(self, name: str) -> Entity:
|
||||
|
@ -27,7 +28,6 @@ class EntityManager:
|
|||
|
||||
def update(self, delta: float):
|
||||
"""Met à jour toutes les entités enregistrées."""
|
||||
if not self.paused:
|
||||
for entity_name in list(self.entities.keys()):
|
||||
entity = self.entities[entity_name]
|
||||
entity.update(delta)
|
||||
|
@ -53,14 +53,18 @@ class EntityManager:
|
|||
return self.entities[name]
|
||||
|
||||
def pause(self):
|
||||
for e in self.get_all_entities():
|
||||
if e.locked:
|
||||
self.locked_before_pause.append(e)
|
||||
else:
|
||||
e.lock()
|
||||
self.paused = True
|
||||
player: Entity = self.get_by_name(self.player_entity_name)
|
||||
if not player.locked:
|
||||
player.lock()
|
||||
|
||||
|
||||
def resume(self):
|
||||
for e in self.get_all_entities():
|
||||
if not e in self.locked_before_pause:
|
||||
e.unlock()
|
||||
|
||||
self.paused = False
|
||||
player: Entity = self.get_by_name(self.player_entity_name)
|
||||
if player.locked:
|
||||
player.unlock()
|
||||
self.locked_before_pause = []
|
Loading…
Reference in a new issue