From 6b4309afc31ef012ec1f3c7e0296592818bfa314 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Tue, 21 Oct 2003 20:08:47 +0000 Subject: [PATCH] update entType2ids on entity insert/remove --- direct/src/level/Level.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/direct/src/level/Level.py b/direct/src/level/Level.py index 76740a724f..297659c349 100755 --- a/direct/src/level/Level.py +++ b/direct/src/level/Level.py @@ -66,7 +66,7 @@ class Level: # get an entity creator object self.entityCreator = self.createEntityCreator() # create all the entities - # TODO: we should leave this to a subclass or the level user + # TODO: maybe we should leave this to a subclass or the level user self.createAllEntities(priorityTypes=['levelMgr','zone']) self.initialized = 1 @@ -123,8 +123,8 @@ class Level: entity.destroy() assert not entId in self.entities else: - Level.notify.warning('trying to destroy entity %s, but ' - 'it is already gone' % entId) + Level.notify.error('trying to destroy entity %s, but ' + 'it is already gone' % entId) def createAllEntitiesOfType(self, entType): """creates all entities of a given type""" @@ -292,6 +292,9 @@ class Level: pass def handleEntityInsert(self, entId): + # update our local type->entId table + self.entType2ids.setdefault(self.getEntityType(entId), []) + self.entType2ids[self.getEntityType(entId)].append(entId) self.createEntity(entId) messenger.send(self.getInsertEntityEventName(), [entId]) @@ -302,3 +305,5 @@ class Level: if entId in self.createdEntIds: entity = self.getEntity(entId) entity.destroy() + # update our local type->entId table + self.entType2ids[self.getEntityType(entId)].remove(entId)