From d35ab6cc851d3fc85f55cfb5676f8dc3552fab24 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Mon, 2 Sep 2024 20:10:35 -0700 Subject: a bit more progress --- kennel/kennel.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'kennel') diff --git a/kennel/kennel.py b/kennel/kennel.py index bb0438c..a9ab4b8 100644 --- a/kennel/kennel.py +++ b/kennel/kennel.py @@ -8,6 +8,8 @@ from kennel.engine.systems.network import ( EventProcessor, Event, EventType, + Entity, + EntityPositionUpdateEvent, ) from kennel.engine.systems.world import WorldSystem from kennel.config import config @@ -35,24 +37,28 @@ class KennelEventProcessor(EventProcessor): self._process_entity_position_update(entity_manager, event, client_id) def _process_entity_position_update( - self, entity_manager: EntityManager, event: Event, client_id: str + self, + entity_manager: EntityManager, + event: EntityPositionUpdateEvent, + client_id: str, ) -> None: entity = entity_manager.get_entity(event.data["id"]) if entity is None: logger.error(f"Entity(id={event.data['id']}) does not exist") return controllable = entity.get_component(ComponentType.CONTROLLABLE) - if controllable is None: - logger.error(f"Entity {entity} is not controllable") - return - if controllable.by != client_id: + if controllable is None or controllable.by != client_id: logger.error(f"Entity {entity} is not controllable by client {client_id}") return position = entity.get_component(ComponentType.POSITION) if position is None: logger.error(f"Entity {entity} has no position") return + position.x = event.data["position"]["x"] + position.y = event.data["position"]["y"] + entity.add_component(position) + entity_manager.add_entity(entity) system_manager.add_system(WorldSystem(config.WORLD_WIDTH, config.WORLD_HEIGHT)) -- cgit v1.3