| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- """EntityCreator module: contains the EntityCreator class"""
- import CutScene
- import EntityCreatorBase
- import BasicEntities
- from direct.directnotify import DirectNotifyGlobal
- import EditMgr
- import EntrancePoint
- import LevelMgr
- import LogicGate
- import ZoneEntity
- import ModelEntity
- import PathEntity
- import VisibilityExtender
- import PropSpinner
- import AmbientSound
- # some useful constructor functions
- # ctor functions must take (level, entId)
- # and they must return the entity that was created, or 'nothing'
- def nothing(*args):
- """For entities that don't need to be created by the client or don't
- exist on the client at all"""
- return 'nothing'
- class EntityCreator(EntityCreatorBase.EntityCreatorBase):
- """
- This class is responsible for creating instances of Entities on the
- client. It can be subclassed to handle more Entity types.
- """
-
- def __init__(self, level):
- EntityCreatorBase.EntityCreatorBase.__init__(self, level)
- self.level = level
- self.privRegisterTypes({
- 'ambientSound': AmbientSound.AmbientSound,
- 'cutScene': CutScene.CutScene,
- 'editMgr': EditMgr.EditMgr,
- 'entityGroup': nothing,
- 'entrancePoint': EntrancePoint.EntrancePoint,
- 'levelMgr': LevelMgr.LevelMgr,
- 'logicGate': LogicGate.LogicGate,
- 'model' : ModelEntity.ModelEntity,
- 'nodepath': BasicEntities.NodePathEntity,
- 'path' : PathEntity.PathEntity,
- 'propSpinner' : PropSpinner.PropSpinner,
- 'visibilityExtender': VisibilityExtender.VisibilityExtender,
- 'zone': ZoneEntity.ZoneEntity,
- })
- def doCreateEntity(self, ctor, entId):
- return ctor(self.level, entId)
|