Bladeren bron

fix support for spec creation

Darren Ranalli 22 jaren geleden
bovenliggende
commit
6aaa15f2f2
1 gewijzigde bestanden met toevoegingen van 11 en 6 verwijderingen
  1. 11 6
      direct/src/level/LevelSpec.py

+ 11 - 6
direct/src/level/LevelSpec.py

@@ -54,21 +54,25 @@ class LevelSpec:
 
 
         if __dev__:
         if __dev__:
             if newSpec:
             if newSpec:
-                # add required entities
+                # add basic required entities
+                import EntityTypes
+                import EntityTypeRegistry
+                etr = EntityTypeRegistry.EntityTypeRegistry(EntityTypes)
+                self.setEntityTypeReg(etr)
 
 
                 # UberZone
                 # UberZone
                 entId = LevelConstants.UberZoneEntId
                 entId = LevelConstants.UberZoneEntId
-                self.insertEntity(entId, 'zone', None)
+                self.insertEntity(entId, 'zone')
                 self.doSetAttrib(entId, 'modelZoneNum',
                 self.doSetAttrib(entId, 'modelZoneNum',
                                  LevelConstants.UberZoneNum)
                                  LevelConstants.UberZoneNum)
                 self.doSetAttrib(entId, 'name', 'UberZone')
                 self.doSetAttrib(entId, 'name', 'UberZone')
                 # LevelMgr
                 # LevelMgr
                 entId = LevelConstants.LevelMgrEntId
                 entId = LevelConstants.LevelMgrEntId
-                self.insertEntity(entId, 'levelMgr', None)
+                self.insertEntity(entId, 'levelMgr')
                 self.doSetAttrib(entId, 'name', 'LevelMgr')
                 self.doSetAttrib(entId, 'name', 'LevelMgr')
                 # EditMgr
                 # EditMgr
                 entId = LevelConstants.EditMgrEntId
                 entId = LevelConstants.EditMgrEntId
-                self.insertEntity(entId, 'editMgr', None)
+                self.insertEntity(entId, 'editMgr')
                 self.doSetAttrib(entId, 'name', 'EditMgr')
                 self.doSetAttrib(entId, 'name', 'EditMgr')
                                        
                                        
     def getNumScenarios(self):
     def getNumScenarios(self):
@@ -194,7 +198,7 @@ class LevelSpec:
                 # officially changed
                 # officially changed
                 self.level.handleAttribChange(entId, attrib, value, username)
                 self.level.handleAttribChange(entId, attrib, value, username)
 
 
-        def insertEntity(self, entId, entType, parentEntId):
+        def insertEntity(self, entId, entType, parentEntId='unspecified'):
             LevelSpec.notify.info('inserting entity %s (%s)' % (entId, entType))
             LevelSpec.notify.info('inserting entity %s (%s)' % (entId, entType))
             assert entId not in self.entId2specDict
             assert entId not in self.entId2specDict
             assert self.entTypeReg is not None
             assert self.entTypeReg is not None
@@ -209,7 +213,8 @@ class LevelSpec:
             for name, desc in attribDescs.items():
             for name, desc in attribDescs.items():
                 spec[name] = desc.getDefaultValue()
                 spec[name] = desc.getDefaultValue()
             spec['type'] = entType
             spec['type'] = entType
-            spec['parentEntId'] = parentEntId
+            if parentEntId != 'unspecified':
+                spec['parentEntId'] = parentEntId
 
 
             if self.hasLevel():
             if self.hasLevel():
                 # notify the level
                 # notify the level