diff --git a/direct/src/controls/DevWalker.py b/direct/src/controls/DevWalker.py index 5f3600f6f6..4fa9bb38e4 100755 --- a/direct/src/controls/DevWalker.py +++ b/direct/src/controls/DevWalker.py @@ -180,6 +180,9 @@ class DevWalker(DirectObject.DirectObject): self.task.remove() self.task = None + def flushEventHandlers(self): + pass + if __debug__: def debugPrint(self, message): """for debugging""" diff --git a/direct/src/controls/GravityWalker.py b/direct/src/controls/GravityWalker.py index b7dc06e7a0..6c4501a0c9 100755 --- a/direct/src/controls/GravityWalker.py +++ b/direct/src/controls/GravityWalker.py @@ -216,14 +216,10 @@ class GravityWalker(DirectObject.DirectObject): # set up collision mechanism if config.GetBool('want-fluid-pusher', 0): - handler = CollisionHandlerFluidPusher() + self.pusher = CollisionHandlerFluidPusher() else: - handler = CollisionHandlerPusher() - #handler.setInPattern("pusher_enter%in") - #handler.setOutPattern("pusher_exit%in") - - handler.addCollider(cSphereNodePath, self.avatarNodePath) - self.pusher = handler + self.pusher = CollisionHandlerPusher() + self.pusher.addCollider(cSphereNodePath, self.avatarNodePath) self.cWallSphereNodePath = cSphereNodePath def setupEventSphere(self, bitmask, avatarRadius): @@ -245,11 +241,9 @@ class GravityWalker(DirectObject.DirectObject): cSphereNode.setIntoCollideMask(BitMask32.allOff()) # set up collision mechanism - handler = CollisionHandlerEvent() - handler.addInPattern("enter%in") - handler.addOutPattern("exit%in") - - self.event = handler + self.event = CollisionHandlerEvent() + self.event.addInPattern("enter%in") + self.event.addOutPattern("exit%in") self.cEventSphereNodePath = cSphereNodePath def setupFloorSphere(self, bitmask, avatarRadius): @@ -269,12 +263,8 @@ class GravityWalker(DirectObject.DirectObject): cSphereNode.setIntoCollideMask(BitMask32.allOff()) # set up collision mechanism - handler = CollisionHandlerPusher() - #handler.setInPattern("pusherFloor_enter%in") - #handler.setOutPattern("pusherFloor_exit%in") - - handler.addCollider(cSphereNodePath, self.avatarNodePath) - self.pusherFloor = handler + self.pusherFloorhandler = CollisionHandlerPusher() + self.pusherFloor.addCollider(cSphereNodePath, self.avatarNodePath) self.cFloorSphereNodePath = cSphereNodePath def setWallBitMask(self, bitMask): @@ -656,6 +646,14 @@ class GravityWalker(DirectObject.DirectObject): self.ignore("control-f3") #*# + def flushEventHandlers(self): + if hasattr(self, 'cTrav'): + self.pusher.flush() + if self.wantFloorSphere: + self.floorPusher.flush() + self.event.flush() + self.lifter.flush() # not currently defined or needed + if __debug__: def debugPrint(self, message): """for debugging""" diff --git a/direct/src/controls/NonPhysicsWalker.py b/direct/src/controls/NonPhysicsWalker.py index 719368c0b7..c587383161 100755 --- a/direct/src/controls/NonPhysicsWalker.py +++ b/direct/src/controls/NonPhysicsWalker.py @@ -307,6 +307,11 @@ class NonPhysicsWalker(DirectObject.DirectObject): taskName = "AvatarControls-%s"%(id(self),) taskMgr.remove(taskName) + def flushEventHandlers(self): + if hasattr(self, 'cTrav'): + self.pusher.flush() + self.lifter.flush() # not currently defined or needed + if __debug__: def debugPrint(self, message): """for debugging""" diff --git a/direct/src/controls/PhysicsWalker.py b/direct/src/controls/PhysicsWalker.py index ca098701be..d6563affe6 100755 --- a/direct/src/controls/PhysicsWalker.py +++ b/direct/src/controls/PhysicsWalker.py @@ -136,7 +136,7 @@ class PhysicsWalker(DirectObject.DirectObject): cRayNode.setFromCollideMask(self.cRayBitMask) cRayNode.setIntoCollideMask(BitMask32.allOff()) - if 0 or self.useLifter: + if self.useLifter: # set up floor collision mechanism self.lifter = CollisionHandlerFloor() self.lifter.setInPattern("enter%in") @@ -772,6 +772,11 @@ class PhysicsWalker(DirectObject.DirectObject): self.ignore("control-f3") #*# self.ignore("f3") + def flushEventHandlers(self): + if hasattr(self, 'cTrav'): + if self.useLifter: + self.lifter.flush() # not currently defined or needed + self.pusher.flush() if __debug__: def setupAvatarPhysicsIndicator(self):