Browse Source

added stop-vis event

Darren Ranalli 19 years ago
parent
commit
ac368c6044
1 changed files with 7 additions and 0 deletions
  1. 7 0
      direct/src/distributed/DistributedCartesianGrid.py

+ 7 - 0
direct/src/distributed/DistributedCartesianGrid.py

@@ -70,7 +70,13 @@ class DistributedCartesianGrid(DistributedNode, CartesianGridBase):
 
 
     def startProcessVisibility(self, avatar):
     def startProcessVisibility(self, avatar):
         assert not self.cr._noNewInterests
         assert not self.cr._noNewInterests
+        if self.cr.noNewInterests():
+            self.notify.warning(
+                'startProcessVisibility(%s): tried to open a new interest during logout'
+                % self.doId)
+            return
         self.stopProcessVisibility()
         self.stopProcessVisibility()
+        self.acceptOnce(self.cr.StopVisibilityEvent, self.stopProcessVisibility)
         self.visAvatar = avatar
         self.visAvatar = avatar
         self.visZone = None
         self.visZone = None
         self.gridVisContext = self.cr.addInterest(
         self.gridVisContext = self.cr.addInterest(
@@ -79,6 +85,7 @@ class DistributedCartesianGrid(DistributedNode, CartesianGridBase):
             self.processVisibility, self.taskName("processVisibility"))
             self.processVisibility, self.taskName("processVisibility"))
 
 
     def stopProcessVisibility(self, clearAll=False, event=None):
     def stopProcessVisibility(self, clearAll=False, event=None):
+        self.ignore(self.cr.StopVisibilityEvent)
         taskMgr.remove(self.taskName("processVisibility"))
         taskMgr.remove(self.taskName("processVisibility"))
         if event is not None:
         if event is not None:
             eventGroup = EventGroup('DistCartesianGrid.stopProcessVis',
             eventGroup = EventGroup('DistCartesianGrid.stopProcessVis',