blob: 78bda58d65534bc3f32fad1ce349e261da3295d1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
from enum import Enum
from kennel.engine.entities.entity import EntityManager
from abc import abstractmethod
class SystemType(str, Enum):
NETWORK = "NETWORK"
WORLD = "WORLD"
class System:
def __init__(self, system_type: SystemType):
self.system_type = system_type
@abstractmethod
async def update(self, entity_manager: EntityManager, delta_time: float):
pass
class SystemManager:
def __init__(self):
self.systems = {}
def add_system(self, system: System) -> None:
self.systems[system.system_type] = system
def get_system(self, system_type: SystemType) -> System:
return self.systems.get(system_type)
async def update(self, entity_manager: EntityManager, delta_time: float) -> None:
for system in self.systems.values():
await system.update(entity_manager, delta_time)
|