diff --git a/direct/src/distributed/DistributedSmoothNode.py b/direct/src/distributed/DistributedSmoothNode.py index dd1dde881b..cfb4af6300 100644 --- a/direct/src/distributed/DistributedSmoothNode.py +++ b/direct/src/distributed/DistributedSmoothNode.py @@ -68,6 +68,14 @@ class DistributedSmoothNode(DistributedNode.DistributedNode, DistributedSmoothNodeBase.DistributedSmoothNodeBase.__init__(self) self.smoothStarted = 0 + # Set this True to assert that the local process has + # complete authority over the position of this object when + # smoothing is not in effect. When this is True, position + # reports received over the wire will not be applied to + # this node's position, unless those position reports are + # received between startSmooth() and endSmooth(). + self.localControl = False + def generate(self): self.smoother = SmoothMover() self.smoothStarted = 0 @@ -296,7 +304,7 @@ class DistributedSmoothNode(DistributedNode.DistributedNode, self.smoother.setTimestamp(local) self.smoother.markPosition() - if not self.smoothStarted and \ + if not self.localControl and not self.smoothStarted and \ self.smoother.getLatestPosition(): self.smoother.applySmoothMat(self)