aboutsummaryrefslogtreecommitdiff
path: root/kennel/engine
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-08-24 13:04:21 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-08-24 13:04:21 -0700
commitb144ad5df76e458297bd6dc030cad4af0f344901 (patch)
treed3cdb19deea8f2e15e52af53d530305a8f01c258 /kennel/engine
parent5dc264e08253c3a97ea41d1fde5fbf3f33dd6591 (diff)
downloadkennel.hatecomputers.club-b144ad5df76e458297bd6dc030cad4af0f344901.tar.gz
kennel.hatecomputers.club-b144ad5df76e458297bd6dc030cad4af0f344901.zip
fix remove_entity method
Diffstat (limited to 'kennel/engine')
-rw-r--r--kennel/engine/entities/entity.py12
-rw-r--r--kennel/engine/game.py6
2 files changed, 10 insertions, 8 deletions
diff --git a/kennel/engine/entities/entity.py b/kennel/engine/entities/entity.py
index b72e996..6623512 100644
--- a/kennel/engine/entities/entity.py
+++ b/kennel/engine/entities/entity.py
@@ -57,11 +57,13 @@ class EntityManager:
self.component_entities[component.component_type].add(entity)
def remove_entity(self, entity_id: str) -> None:
- if entity_id in self.entities:
- entity = self.entities[entity_id]
- for component in entity.components.values():
- if component.component_type in self.component_entities:
- self.component_entities[component.component_type].remove(entity)
+ if entity_id not in self.entities:
+ return
+ entity = self.entities[entity_id]
+ for component in entity.components.values():
+ if component.component_type in self.component_entities:
+ self.component_entities[component.component_type].remove(entity)
+ del self.entities[entity_id]
def get_entity(self, entity_id: str) -> Optional[Entity]:
return self.entities.get(entity_id)
diff --git a/kennel/engine/game.py b/kennel/engine/game.py
index 2236306..f3134be 100644
--- a/kennel/engine/game.py
+++ b/kennel/engine/game.py
@@ -42,9 +42,9 @@ class Game:
self.last_time = current_time
await self.update(delta_time)
- await asyncio.sleep(
- max(self.min_time_step - (time.time() - current_time), 0)
- )
+ sleep_time = max(self.min_time_step - (time.time() - current_time), 0)
+ if sleep_time > 0:
+ await asyncio.sleep(sleep_time)
steps_since_log += 1