gtn/tasks.py
2023-10-23 12:14:28 +02:00

30 lines
773 B
Python

from typing import Callable
from ecs import World
class TaskManager:
"""
Contient des fonctions de logique s'appliquant sur un monde.
"""
def __init__(self):
"""
Créer un gestionnaire de taches vide.
"""
self.tasks: dict[int, list[Callable[[World], None]]] = {}
def add(self, priority: int, task: Callable[[World], None]):
"""
Ajoute une tache à un gestionnaire de taches.
"""
self.tasks.setdefault(priority, []).append(task)
def run(self, world: World):
"""
Exécute toutes les taches.
"""
priorities = sorted(list(self.tasks.keys()))
for priority in priorities:
for task in self.tasks[priority]:
task(world)