disable mouse buttons while in oobe mode

This commit is contained in:
David Rose 2008-11-13 19:39:41 +00:00
parent 22e6577ad1
commit 8f12774e74

View File

@ -1813,6 +1813,10 @@ class ShowBase(DirectObject.DirectObject):
self.oobeCullFrustum = None
self.oobeCullFrustumVis = None
self.accept('oobe-down', self.__oobeButton, extraArgs = [''])
self.accept('oobe-repeat', self.__oobeButton, extraArgs = ['-repeat'])
self.accept('oobe-up', self.__oobeButton, extraArgs = ['-up'])
if self.oobeMode:
# Disable OOBE mode.
if self.oobeCullFrustum != None:
@ -1827,6 +1831,12 @@ class ShowBase(DirectObject.DirectObject):
self.mouseInterfaceNode.clearButton(KeyboardButton.control())
self.oobeTrackball.detachNode()
bt = self.buttonThrowers[0].node()
bt.setSpecificFlag(1)
bt.setButtonDownEvent('')
bt.setButtonRepeatEvent('')
bt.setButtonUpEvent('')
self.cam.reparentTo(self.camera)
self.camNode.setLens(self.camLens)
self.oobeCamera.reparentTo(self.hidden)
@ -1857,6 +1867,14 @@ class ShowBase(DirectObject.DirectObject):
self.cam.reparentTo(self.oobeCameraTrackball)
# Temporarily disable button events by routing them
# through the oobe filters.
bt = self.buttonThrowers[0].node()
bt.setSpecificFlag(0)
bt.setButtonDownEvent('oobe-down')
bt.setButtonRepeatEvent('oobe-repeat')
bt.setButtonUpEvent('oobe-up')
# Don't change the camera lens--keep it with the original lens.
#self.camNode.setLens(self.oobeLens)
@ -1864,6 +1882,14 @@ class ShowBase(DirectObject.DirectObject):
self.oobeVis.reparentTo(self.camera)
self.oobeMode = 1
def __oobeButton(self, suffix, button):
if button.startswith('mouse'):
# Eat mouse buttons.
return
# Transmit other buttons.
messenger.send(button + suffix)
def oobeCull(self):
"""
While in OOBE mode (see above), cull the viewing frustum as if