From cdcb57aa73321c94ac0e2bf736a8692ac6dfc8b1 Mon Sep 17 00:00:00 2001 From: Samir Naik Date: Wed, 4 Jan 2006 23:53:37 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/distributed/CartesianGridBase.py | 9 ++++++-- .../distributed/DistributedCartesianGrid.py | 22 +++++++++---------- .../distributed/DistributedCartesianGridAI.py | 2 +- direct/src/distributed/DistributedNodeAI.py | 5 +++++ 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/direct/src/distributed/CartesianGridBase.py b/direct/src/distributed/CartesianGridBase.py index 28a346abe4..ead277aad3 100755 --- a/direct/src/distributed/CartesianGridBase.py +++ b/direct/src/distributed/CartesianGridBase.py @@ -3,13 +3,18 @@ class CartesianGridBase: def isValidZone(self, zoneId): - if self.style == "Cartesian": + def checkBounds(self=self,zoneId=zoneId): if ((zoneId < self.startingZone) or (zoneId > self.startingZone + self.gridSize * self.gridSize - 1)): return 0 return 1 + if self.style == "Cartesian": + return checkBounds() elif self.style == "CartesianStated": - return 1 + if zoneId >= 0 and zoneId < self.startingZone: + return 1 + else: + return checkBounds() else: return 0 diff --git a/direct/src/distributed/DistributedCartesianGrid.py b/direct/src/distributed/DistributedCartesianGrid.py index 8ac4a4d0ad..c0b3a5491b 100755 --- a/direct/src/distributed/DistributedCartesianGrid.py +++ b/direct/src/distributed/DistributedCartesianGrid.py @@ -28,7 +28,7 @@ class DistributedCartesianGrid(DistributedNode.DistributedNode, DistributedNode.DistributedNode.__init__(self, cr) # Let the derived classes instantiate the NodePath self.visAvatar = None - self.visContext = None + self.gridVisContext = None # Do we have grid lines visualized? if __debug__: self.haveGridLines = 0 @@ -73,14 +73,14 @@ class DistributedCartesianGrid(DistributedNode.DistributedNode, self.stopProcessVisibility() self.visAvatar = avatar self.visZone = None - self.visContext = self.cr.addInterest(self.getDoId(), 0, self.uniqueName("visibility")) + self.gridVisContext = self.cr.addInterest(self.getDoId(), 0, self.uniqueName("visibility")) taskMgr.add(self.processVisibility, self.taskName("processVisibility")) def stopProcessVisibility(self,clearAll=False): taskMgr.remove(self.taskName("processVisibility")) - if self.visContext is not None: - self.cr.removeInterest(self.visContext) - self.visContext = None + if self.gridVisContext is not None: + self.cr.removeInterest(self.gridVisContext) + self.gridVisContext = None self.visAvatar = None self.visZone = None @@ -102,10 +102,10 @@ class DistributedCartesianGrid(DistributedNode.DistributedNode, assert self.notify.debug("processVisibility: %s: not on the grid" % (self.doId)) # If we are viewingRadius away from this entire grid, # remove interest in any current visZone we may have - if self.visContext: - self.cr.removeInterest(self.visContext) + if self.gridVisContext: + self.cr.removeInterest(self.gridVisContext) self.visZone = None - self.visContext = None + self.gridVisContext = None return Task.cont # Compute which zone we are in zoneId = int(self.startingZone + ((row * self.gridSize) + col)) @@ -117,13 +117,13 @@ class DistributedCartesianGrid(DistributedNode.DistributedNode, else: assert self.notify.debug("processVisibility: %s: new interest" % (self.doId)) self.visZone = zoneId - if not self.visContext: - self.visContext = self.cr.addInterest(self.getDoId(), self.visZone, + if not self.gridVisContext: + self.gridVisContext = self.cr.addInterest(self.getDoId(), self.visZone, self.uniqueName("visibility")) else: assert self.notify.debug("processVisibility: %s: altering interest to zoneId: %s" % (self.doId, zoneId)) - self.cr.alterInterest(self.visContext, self.getDoId(), self.visZone) + self.cr.alterInterest(self.gridVisContext, self.getDoId(), self.visZone) # If the visAvatar is parented to this grid, also do a setLocation parentId = self.visAvatar.parentId oldZoneId = self.visAvatar.zoneId diff --git a/direct/src/distributed/DistributedCartesianGridAI.py b/direct/src/distributed/DistributedCartesianGridAI.py index 6448a6f64f..8d71c07b73 100755 --- a/direct/src/distributed/DistributedCartesianGridAI.py +++ b/direct/src/distributed/DistributedCartesianGridAI.py @@ -107,7 +107,7 @@ class DistributedCartesianGridAI(DistributedNodeAI.DistributedNodeAI, pos = av.getPos(self) zoneId = self.getZoneFromXYZ(pos) else: - # zone already calcualte, position of object might not + # zone already calculated, position of object might not # give the correct zone pos = None zoneId = useZoneId diff --git a/direct/src/distributed/DistributedNodeAI.py b/direct/src/distributed/DistributedNodeAI.py index 014d0402cd..5f95e9fd17 100644 --- a/direct/src/distributed/DistributedNodeAI.py +++ b/direct/src/distributed/DistributedNodeAI.py @@ -122,6 +122,11 @@ class DistributedNodeAI(DistributedObjectAI.DistributedObjectAI, NodePath): def setXYZH(self, x, y, z, h): self.setPos(x, y, z) self.setH(h) + def getXYZH(self): + pos = self.getPos() + h = self.getH() + return pos[0],pos[1],pos[2],h + def d_setXYZH(self, x, y, z, h): self.sendUpdate("setXYZH", [x, y, z, h])