From 143d4b5d0caca6deac6b2b9446d2f9e7e9c2fa7c Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Tue, 12 Jul 2005 21:54:41 +0000 Subject: [PATCH] testing without generate global object --- direct/src/distributed/DistributedObjectAI.py | 62 ++++++++++++++++--- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/direct/src/distributed/DistributedObjectAI.py b/direct/src/distributed/DistributedObjectAI.py index 96b8c91453..a6296a3bfe 100644 --- a/direct/src/distributed/DistributedObjectAI.py +++ b/direct/src/distributed/DistributedObjectAI.py @@ -165,6 +165,7 @@ class DistributedObjectAI(DirectObject): of its required fields filled in. Overwrite when needed. """ self.__generated = True + messenger.send(self.uniqueName("generate"), [self]) if wantOtpServer: def addInterest(self, zoneId, note="", event=None): @@ -364,16 +365,59 @@ class DistributedObjectAI(DirectObject): self.announceGenerate() if wantOtpServer: - def generateGlobalObject(self, parentId, zoneId, doId): - assert self.notify.debugStateCall(self) - self.doId = doId - # Put the new DO in the dictionaries - self.air.addDOToTables(self, location=(parentId,zoneId)) + ## def generateGlobalObject(self, doId, dcname): + ## # Look up the dclass + ## dclass = self.dclassesByName[dcname] + ## # Create a new distributed object, and put it in the dictionary + ## #distObj = self.generateWithRequiredFields(dclass, doId, di) + + ## # Construct a new one + ## classDef = dclass.getClassDef() + ## if classDef == None: + ## self.notify.error("Could not create an undefined %s object."%( + ## dclass.getName())) + ## distObj = classDef(self) + ## distObj.dclass = dclass + ## # Assign it an Id + ## distObj.doId = doId + ## # Put the new do in the dictionary + ## self.doId2do[doId] = distObj + ## # Update the required fields + ## distObj.generateInit() # Only called when constructed + ## distObj.generate() + ## if wantOtpServer: + ## # TODO: ROGER: where should we get parentId and zoneId? + ## parentId = None + ## zoneId = None + ## distObj.setLocation(parentId, zoneId) + ## # updateRequiredFields calls announceGenerate + ## return distObj - assert not hasattr(self, 'parentId') - self.parentId = parentId - self.zoneId = zoneId - self.generate() + ## def generateGlobalObject(self, doId, dcname, parentId=None, zoneId=None): + ## assert self.notify.debugStateCall(self) + ## # Look up the dclass + ## dclass = self.dclassesByName[dcname] + ## # Construct a new one + ## classDef = dclass.getClassDef() + ## if classDef == None: + ## self.notify.error("Could not create an undefined %s object."%( + ## dclass.getName())) + ## distObj = classDef(self) + ## distObj.dclass = dclass + + ## assert not hasattr(self, 'parentId') + ## self.doId = doId + ## self.parentId = parentId + ## self.zoneId = zoneId + ## # Put the new DO in the dictionaries + ## self.air.addDOToTables(self, location=(parentId,zoneId)) + + ## assert not hasattr(self, 'parentId') + ## self.parentId = parentId + ## self.zoneId = zoneId + ## distObj.generateInit() # Only called when constructed + ## self.generate() + ## return distObj def generateOtpObject(self, parentId, zoneId, optionalFields=[], doId=None): assert self.notify.debugStateCall(self)