From 2f5ab9378ffa1ea13969eb1ed40288f3fa416dfc Mon Sep 17 00:00:00 2001 From: Dustin Barnard Date: Mon, 1 Oct 2007 18:28:20 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/cluster/ClusterClient.py | 28 ++++++++++++++++++++++++---- direct/src/cluster/ClusterServer.py | 4 +++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/direct/src/cluster/ClusterClient.py b/direct/src/cluster/ClusterClient.py index 176efbb83f..b95048bcb0 100644 --- a/direct/src/cluster/ClusterClient.py +++ b/direct/src/cluster/ClusterClient.py @@ -108,7 +108,7 @@ class ClusterClient(DirectObject.DirectObject): def startControlObjectTask(self): self.notify.debug("moving control objects") - taskMgr.add(self.controlObjectTask,"controlObjectTask") + taskMgr.add(self.controlObjectTask,"controlObjectTask",50) def startSynchronizeTimeTask(self): self.notify.debug('broadcasting frame time') @@ -203,16 +203,36 @@ class ClusterClient(DirectObject.DirectObject): self.controlMappings[objectName] = [controlledName,serverList] self.controlOffsets[objectName] = offset else: - self.notify.debug('attempt to add duplicate controlled object: '+name) + oldList = self.controlMappings[objectName] + mergedList = [] + for item in oldList: + mergedList.append(item) + for item in serverList: + if (item is not in mergedList): + mergedList.append(item) + + #self.notify.debug('attempt to add duplicate controlled object: '+name) def setControlMappingOffset(self,objectName,offset): if (self.controlMappings.has_key(objectName)): self.controlOffsets[objectName] = offset - def removeControlMapping(self,name): + def removeControlMapping(self,name, serverList = None): if (self.controlMappings.has_key(name)): - self.controlMappings.pop(name) + if (serverList == None): + self.controlMappings.pop(name) + else: + list = self.controlMappings[key][1] + newList = [] + for server in list: + if (server is not in serverList): + newList.append(server) + self.controlMappings[key][1] = newList + if (len(newList) == 0): + self.controlMappings.pop(name) + + def getNodePathFindCmd(self, nodePath): import string pathString = `nodePath` diff --git a/direct/src/cluster/ClusterServer.py b/direct/src/cluster/ClusterServer.py index d585673510..c1de8a7f3b 100644 --- a/direct/src/cluster/ClusterServer.py +++ b/direct/src/cluster/ClusterServer.py @@ -110,6 +110,8 @@ class ClusterServer(DirectObject.DirectObject): self.objectMappings.pop(name) + + def addControlMapping(self,objectName,controlledName, offset = None): if (not self.controlMappings.has_key(objectName)): self.controlMappings[objectName] = controlledName @@ -131,7 +133,7 @@ class ClusterServer(DirectObject.DirectObject): def startControlObjectTask(self): self.notify.debug("moving control objects") - taskMgr.add(self.controlObjectTask,"controlObjectTask") + taskMgr.add(self.controlObjectTask,"controlObjectTask",50) def controlObjectTask(self, task): #print "running control object task"