mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
*** empty log message ***
This commit is contained in:
parent
cdc73110ad
commit
de41ee6447
@ -301,12 +301,18 @@ class Actor(PandaObject, NodePath):
|
||||
|
||||
def getPartBundleDict(self):
|
||||
return self.__partBundleDict
|
||||
|
||||
|
||||
|
||||
def getLODNames(self):
|
||||
"""getLODNames(self):
|
||||
Return list of Actor LOD names. If not an LOD actor,
|
||||
returns 'lodRoot'"""
|
||||
return self.__partBundleDict.keys()
|
||||
returns 'lodRoot'
|
||||
Sorts them from highest lod to lowest.
|
||||
"""
|
||||
lodNames = self.__partBundleDict.keys()
|
||||
# Reverse sort the doing a string->int
|
||||
lodNames.sort(lambda x,y : cmp(int(y), int(x)))
|
||||
return lodNames
|
||||
|
||||
def getPartNames(self):
|
||||
"""getPartNames(self):
|
||||
|
@ -92,7 +92,7 @@ class ClusterManager(DirectObject.DirectObject):
|
||||
|
||||
def startMoveCamTask(self):
|
||||
task = Task.Task(self.moveCameraTask,49)
|
||||
taskMgr.spawnTaskNamed(task, "moveCamTask")
|
||||
taskMgr.add(task, "moveCamTask")
|
||||
return None
|
||||
|
||||
def moveCameraTask(self,task):
|
||||
@ -113,7 +113,7 @@ class ClusterManagerSync(ClusterManager):
|
||||
|
||||
def startSwapCoordinatorTask(self):
|
||||
task = Task.Task(self.swapCoordinator,51)
|
||||
taskMgr.spawnTaskNamed(task, "clientSwapCoordinator")
|
||||
taskMgr.add(task, "clientSwapCoordinator")
|
||||
return None
|
||||
|
||||
def swapCoordinator(self,task):
|
||||
|
@ -45,7 +45,7 @@ class ClusterServer(DirectObject.DirectObject):
|
||||
|
||||
def startListenerPollTask(self):
|
||||
task = Task.Task(self.listenerPoll)
|
||||
taskMgr.spawnTaskNamed(task, "serverListenerPollTask")
|
||||
taskMgr.add(task, "serverListenerPollTask")
|
||||
return None
|
||||
|
||||
def listenerPoll(self, task):
|
||||
@ -69,7 +69,7 @@ class ClusterServer(DirectObject.DirectObject):
|
||||
|
||||
def startReaderPollTask(self):
|
||||
task = Task.Task(self.readerPollUntilEmpty,-10)
|
||||
taskMgr.spawnTaskNamed(task, "serverReaderPollTask")
|
||||
taskMgr.add(task, "serverReaderPollTask")
|
||||
return None
|
||||
|
||||
def readerPollUntilEmpty(self, task):
|
||||
@ -144,7 +144,7 @@ class ClusterServerSync(ClusterServer):
|
||||
|
||||
def startListenerPollTask(self):
|
||||
task = Task.Task(self.listenerPoll,-2)
|
||||
taskMgr.spawnTaskNamed(task, "serverListenerPollTask")
|
||||
taskMgr.add(task, "serverListenerPollTask")
|
||||
return None
|
||||
|
||||
def listenerPoll(self, task):
|
||||
@ -175,7 +175,7 @@ class ClusterServerSync(ClusterServer):
|
||||
|
||||
def startReaderPollTask(self):
|
||||
task = Task.Task(self.readPos,-1)
|
||||
taskMgr.spawnTaskNamed(task, "serverReadPosTask")
|
||||
taskMgr.add(task, "serverReadPosTask")
|
||||
return None
|
||||
|
||||
def readPos(self, task):
|
||||
@ -202,7 +202,7 @@ class ClusterServerSync(ClusterServer):
|
||||
|
||||
def startSwapCoordinator(self):
|
||||
task = Task.Task(self.swapCoordinatorTask, 51)
|
||||
taskMgr.spawnTaskNamed(task, "serverSwapCoordinator")
|
||||
taskMgr.add(task, "serverSwapCoordinator")
|
||||
return None
|
||||
|
||||
def swapCoordinatorTask(self, task):
|
||||
|
@ -45,10 +45,10 @@ class DirectFastrak(PandaObject):
|
||||
# Initialize tracker
|
||||
self.tracker = direct.deviceManager.createTracker(self.device)
|
||||
# Update task
|
||||
taskMgr.spawnMethodNamed(self.updateTask, self.name + '-updateTask')
|
||||
taskMgr.add(self.updateTask, self.name + '-updateTask')
|
||||
|
||||
def disable(self):
|
||||
taskMgr.removeTasksNamed(self.name + '-updateTask')
|
||||
taskMgr.remove(self.name + '-updateTask')
|
||||
|
||||
def destroy(self):
|
||||
self.disable()
|
||||
|
@ -80,10 +80,10 @@ class DirectJoybox(PandaObject):
|
||||
self.acceptSwitchModeEvent()
|
||||
self.acceptUprightCameraEvent()
|
||||
# Update task
|
||||
taskMgr.spawnMethodNamed(self.updateTask, self.name + '-updateTask')
|
||||
taskMgr.add(self.updateTask, self.name + '-updateTask')
|
||||
|
||||
def disable(self):
|
||||
taskMgr.removeTasksNamed(self.name + '-updateTask')
|
||||
taskMgr.remove(self.name + '-updateTask')
|
||||
# Ignore button events
|
||||
self.ignoreSwitchModeEvent()
|
||||
self.ignoreUprightCameraEvent()
|
||||
@ -189,7 +189,7 @@ class DirectJoybox(PandaObject):
|
||||
def hideText(state, s = self):
|
||||
s.readout.setText('')
|
||||
return Task.done
|
||||
taskMgr.removeTasksNamed(self.name + '-showMode')
|
||||
taskMgr.remove(self.name + '-showMode')
|
||||
# Update display
|
||||
self.readout.setText(modeText)
|
||||
t = taskMgr.doMethodLater(3.0, hideText, self.name + '-showMode')
|
||||
|
@ -46,10 +46,10 @@ class DirectRadamec(PandaObject):
|
||||
# Kill existing task
|
||||
self.disable()
|
||||
# Update task
|
||||
taskMgr.spawnMethodNamed(self.updateTask, self.name + '-updateTask')
|
||||
taskMgr.add(self.updateTask, self.name + '-updateTask')
|
||||
|
||||
def disable(self):
|
||||
taskMgr.removeTasksNamed(self.name + '-updateTask')
|
||||
taskMgr.remove(self.name + '-updateTask')
|
||||
|
||||
def destroy(self):
|
||||
self.disable()
|
||||
|
@ -84,7 +84,7 @@ class DirectCameraControl(PandaObject):
|
||||
self.spawnMouseRotateTask()
|
||||
|
||||
def mouseFlyStop(self):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
stopT = globalClock.getFrameTime()
|
||||
deltaT = stopT - self.startT
|
||||
stopF = globalClock.getFrameCount()
|
||||
@ -111,39 +111,39 @@ class DirectCameraControl(PandaObject):
|
||||
|
||||
def spawnXZTranslateOrHPanYZoom(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Spawn the new task
|
||||
t = Task.Task(self.XZTranslateOrHPanYZoomTask)
|
||||
# For HPanYZoom
|
||||
t.zoomSF = Vec3(self.coaMarker.getPos(direct.camera)).length()
|
||||
taskMgr.spawnTaskNamed(t, 'manipulateCamera')
|
||||
taskMgr.add(t, 'manipulateCamera')
|
||||
|
||||
def spawnXZTranslateOrHPPan(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Spawn new task
|
||||
taskMgr.spawnMethodNamed(self.XZTranslateOrHPPanTask,
|
||||
'manipulateCamera')
|
||||
taskMgr.add(self.XZTranslateOrHPPanTask,
|
||||
'manipulateCamera')
|
||||
|
||||
def spawnXZTranslate(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Spawn new task
|
||||
taskMgr.spawnMethodNamed(self.XZTranslateTask, 'manipulateCamera')
|
||||
taskMgr.add(self.XZTranslateTask, 'manipulateCamera')
|
||||
|
||||
def spawnHPanYZoom(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Spawn new task
|
||||
t = Task.Task(self.HPanYZoomTask)
|
||||
t.zoomSF = Vec3(self.coaMarker.getPos(direct.camera)).length()
|
||||
taskMgr.spawnTaskNamed(t, 'manipulateCamera')
|
||||
taskMgr.add(t, 'manipulateCamera')
|
||||
|
||||
def spawnHPPan(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Spawn new task
|
||||
taskMgr.spawnMethodNamed(self.HPPanTask, 'manipulateCamera')
|
||||
taskMgr.add(self.HPPanTask, 'manipulateCamera')
|
||||
|
||||
def XZTranslateOrHPanYZoomTask(self, state):
|
||||
if direct.fShift:
|
||||
@ -205,7 +205,7 @@ class DirectCameraControl(PandaObject):
|
||||
|
||||
def spawnMouseRotateTask(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Set at markers position in render coordinates
|
||||
self.camManipRef.setPos(self.coaMarkerPos)
|
||||
self.camManipRef.setHpr(direct.camera, ZERO_POINT)
|
||||
@ -214,7 +214,7 @@ class DirectCameraControl(PandaObject):
|
||||
t.constrainedDir = 'y'
|
||||
else:
|
||||
t.constrainedDir = 'x'
|
||||
taskMgr.spawnTaskNamed(t, 'manipulateCamera')
|
||||
taskMgr.add(t, 'manipulateCamera')
|
||||
|
||||
def mouseRotateTask(self, state):
|
||||
# If moving outside of center, ignore motion perpendicular to edge
|
||||
@ -245,7 +245,7 @@ class DirectCameraControl(PandaObject):
|
||||
|
||||
def spawnMouseRollTask(self):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Set at markers position in render coordinates
|
||||
self.camManipRef.setPos(self.coaMarkerPos)
|
||||
self.camManipRef.setHpr(direct.camera, ZERO_POINT)
|
||||
@ -253,7 +253,7 @@ class DirectCameraControl(PandaObject):
|
||||
t.coaCenter = getScreenXY(self.coaMarker)
|
||||
t.lastAngle = getCrankAngle(t.coaCenter)
|
||||
t.wrtMat = direct.camera.getMat( self.camManipRef )
|
||||
taskMgr.spawnTaskNamed(t, 'manipulateCamera')
|
||||
taskMgr.add(t, 'manipulateCamera')
|
||||
|
||||
def mouseRollTask(self, state):
|
||||
wrtMat = state.wrtMat
|
||||
@ -383,7 +383,7 @@ class DirectCameraControl(PandaObject):
|
||||
self.updateCoaMarkerSize()
|
||||
|
||||
def uprightCam(self):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Record undo point
|
||||
direct.pushUndo([direct.camera])
|
||||
# Pitch camera till upright
|
||||
@ -395,7 +395,7 @@ class DirectCameraControl(PandaObject):
|
||||
task = 'manipulateCamera')
|
||||
|
||||
def orbitUprightCam(self):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Record undo point
|
||||
direct.pushUndo([direct.camera])
|
||||
# Transform camera z axis to render space
|
||||
@ -439,7 +439,7 @@ class DirectCameraControl(PandaObject):
|
||||
self.centerCamIn(0.)
|
||||
|
||||
def centerCamIn(self, t):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Record undo point
|
||||
direct.pushUndo([direct.camera])
|
||||
# Determine marker location
|
||||
@ -456,7 +456,7 @@ class DirectCameraControl(PandaObject):
|
||||
t.uponDeath = self.updateCoaMarkerSizeOnDeath
|
||||
|
||||
def zoomCam(self, zoomFactor, t):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Record undo point
|
||||
direct.pushUndo([direct.camera])
|
||||
# Find a point zoom factor times the current separation
|
||||
@ -474,7 +474,7 @@ class DirectCameraControl(PandaObject):
|
||||
|
||||
def spawnMoveToView(self, view):
|
||||
# Kill any existing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# Record undo point
|
||||
direct.pushUndo([direct.camera])
|
||||
# Calc hprOffset
|
||||
@ -525,7 +525,7 @@ class DirectCameraControl(PandaObject):
|
||||
|
||||
def swingCamAboutWidget(self, degrees, t):
|
||||
# Remove existing camera manipulation task
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
|
||||
# Record undo point
|
||||
direct.pushUndo([direct.camera])
|
||||
@ -553,7 +553,7 @@ class DirectCameraControl(PandaObject):
|
||||
def fitOnWidget(self, nodePath = 'None Given'):
|
||||
# Fit the node on the screen
|
||||
# stop any ongoing tasks
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
# How big is the node?
|
||||
nodeScale = direct.widget.scalingNode.getScale(render)
|
||||
maxScale = max(nodeScale[0],nodeScale[1],nodeScale[2])
|
||||
@ -601,16 +601,16 @@ class DirectCameraControl(PandaObject):
|
||||
# Push state onto undo stack
|
||||
direct.pushUndo(direct.selected)
|
||||
# Remove the task to keep the widget attached to the object
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
# Spawn a task to keep the selected objects with the widget
|
||||
taskMgr.spawnMethodNamed(self.stickToWidgetTask, 'stickToWidget')
|
||||
taskMgr.add(self.stickToWidgetTask, 'stickToWidget')
|
||||
# Spawn a task to move the widget
|
||||
t = direct.widget.lerpPos(Point3(centerVec),
|
||||
CAM_MOVE_DURATION,
|
||||
other = direct.camera,
|
||||
blendType = 'easeInOut',
|
||||
task = 'moveToFitTask')
|
||||
t.uponDeath = lambda state: taskMgr.removeTasksNamed('stickToWidget')
|
||||
t.uponDeath = lambda state: taskMgr.remove('stickToWidget')
|
||||
|
||||
def stickToWidgetTask(self, state):
|
||||
# Move the objects with the widget
|
||||
@ -636,5 +636,5 @@ class DirectCameraControl(PandaObject):
|
||||
base.enableMouse()
|
||||
|
||||
def removeManipulateCameraTask(self):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
|
||||
|
@ -52,7 +52,7 @@ class DirectManipulationControl(PandaObject):
|
||||
self.constraint = None
|
||||
# Check to see if we are moving the object
|
||||
# We are moving the object if we either wait long enough
|
||||
taskMgr.spawnTaskNamed(
|
||||
taskMgr.add(
|
||||
Task.doLater(MANIPULATION_MOVE_DELAY,
|
||||
Task.Task(self.switchToMoveMode),
|
||||
'manip-move-wait'),
|
||||
@ -62,10 +62,10 @@ class DirectManipulationControl(PandaObject):
|
||||
watchMouseTask = Task.Task(self.watchMouseTask)
|
||||
watchMouseTask.initX = direct.dr.mouseX
|
||||
watchMouseTask.initY = direct.dr.mouseY
|
||||
taskMgr.spawnTaskNamed(watchMouseTask, 'manip-watch-mouse')
|
||||
taskMgr.add(watchMouseTask, 'manip-watch-mouse')
|
||||
|
||||
def switchToMoveMode(self, state):
|
||||
taskMgr.removeTasksNamed('manip-watch-mouse')
|
||||
taskMgr.remove('manip-watch-mouse')
|
||||
self.mode = 'move'
|
||||
self.manipulateObject()
|
||||
return Task.done
|
||||
@ -73,7 +73,7 @@ class DirectManipulationControl(PandaObject):
|
||||
def watchMouseTask(self, state):
|
||||
if (((abs (state.initX - direct.dr.mouseX)) > 0.01) or
|
||||
((abs (state.initY - direct.dr.mouseY)) > 0.01)):
|
||||
taskMgr.removeTasksNamed('manip-move-wait')
|
||||
taskMgr.remove('manip-move-wait')
|
||||
self.mode = 'move'
|
||||
self.manipulateObject()
|
||||
return Task.done
|
||||
@ -81,9 +81,9 @@ class DirectManipulationControl(PandaObject):
|
||||
return Task.cont
|
||||
|
||||
def manipulationStop(self):
|
||||
taskMgr.removeTasksNamed('manipulateObject')
|
||||
taskMgr.removeTasksNamed('manip-move-wait')
|
||||
taskMgr.removeTasksNamed('manip-watch-mouse')
|
||||
taskMgr.remove('manipulateObject')
|
||||
taskMgr.remove('manip-move-wait')
|
||||
taskMgr.remove('manip-watch-mouse')
|
||||
# depending on flag.....
|
||||
if self.mode == 'select':
|
||||
# Check for object under mouse
|
||||
@ -123,7 +123,7 @@ class DirectManipulationControl(PandaObject):
|
||||
if not direct.selected.last:
|
||||
return
|
||||
# Clear out old task to make sure
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
# Where are the object handles relative to the selected object
|
||||
pos = VBase3(0)
|
||||
hpr = VBase3(0)
|
||||
@ -136,7 +136,7 @@ class DirectManipulationControl(PandaObject):
|
||||
t.hpr = hpr
|
||||
t.base = direct.selected.last
|
||||
# Spawn the task
|
||||
taskMgr.spawnTaskNamed(t, 'followSelectedNodePath')
|
||||
taskMgr.add(t, 'followSelectedNodePath')
|
||||
|
||||
def followSelectedNodePathTask(self, state):
|
||||
direct.widget.setPosHpr(state.base, state.pos, state.hpr)
|
||||
@ -160,15 +160,15 @@ class DirectManipulationControl(PandaObject):
|
||||
self.objectHandles.manipModeColor()
|
||||
|
||||
def removeManipulateObjectTask(self):
|
||||
taskMgr.removeTasksNamed('manipulateObject')
|
||||
taskMgr.remove('manipulateObject')
|
||||
|
||||
def manipulateObject(self):
|
||||
# Only do this if something is selected
|
||||
if direct.selected:
|
||||
# Remove the task to keep the widget attached to the object
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
# and the task to highlight the widget
|
||||
taskMgr.removeTasksNamed('highlightWidgetTask')
|
||||
taskMgr.remove('highlightWidgetTask')
|
||||
# Set manipulation flag
|
||||
self.fManip = 1
|
||||
# Record undo point
|
||||
@ -204,7 +204,7 @@ class DirectManipulationControl(PandaObject):
|
||||
# These are used to rotate about view vector
|
||||
if t.fMouseX and t.fMouseY:
|
||||
t.lastAngle = getCrankAngle(t.coaCenter)
|
||||
taskMgr.spawnTaskNamed(t, 'manipulateObject')
|
||||
taskMgr.add(t, 'manipulateObject')
|
||||
|
||||
def manipulateObjectTask(self, state):
|
||||
# Widget takes precedence
|
||||
@ -732,14 +732,14 @@ class ObjectHandles(NodePath,PandaObject):
|
||||
self.setScale(1)
|
||||
|
||||
def multiplyScalingFactorBy(self, factor):
|
||||
taskMgr.removeTasksNamed('resizeObjectHandles')
|
||||
taskMgr.remove('resizeObjectHandles')
|
||||
sf = self.ohScalingFactor = self.ohScalingFactor * factor
|
||||
self.scalingNode.lerpScale(sf,sf,sf, 0.5,
|
||||
blendType = 'easeInOut',
|
||||
task = 'resizeObjectHandles')
|
||||
|
||||
def growToFit(self):
|
||||
taskMgr.removeTasksNamed('resizeObjectHandles')
|
||||
taskMgr.remove('resizeObjectHandles')
|
||||
# Increase handles scale until they cover 30% of the min dimension
|
||||
pos = direct.widget.getPos(direct.camera)
|
||||
minDim = min(direct.dr.nearWidth, direct.dr.nearHeight)
|
||||
|
@ -417,10 +417,10 @@ class DirectSession(PandaObject):
|
||||
# shrink the widget
|
||||
self.widget.setScalingFactor(dnp.getRadius())
|
||||
# Spawn task to have object handles follow the selected object
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
t = Task.Task(self.followSelectedNodePathTask)
|
||||
t.dnp = dnp
|
||||
taskMgr.spawnTaskNamed(t, 'followSelectedNodePath')
|
||||
taskMgr.add(t, 'followSelectedNodePath')
|
||||
# Send an message marking the event
|
||||
messenger.send('DIRECT_selectedNodePath', [dnp])
|
||||
|
||||
@ -439,7 +439,7 @@ class DirectSession(PandaObject):
|
||||
self.widget.hideWidget()
|
||||
self.selectedNPReadout.reparentTo(hidden)
|
||||
self.selectedNPReadout.setText(' ')
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
self.ancestry = []
|
||||
# Send an message marking the event
|
||||
messenger.send('DIRECT_deselectedNodePath', [dnp])
|
||||
@ -450,7 +450,7 @@ class DirectSession(PandaObject):
|
||||
self.widget.hideWidget()
|
||||
self.selectedNPReadout.reparentTo(hidden)
|
||||
self.selectedNPReadout.setText(' ')
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
|
||||
def setActiveParent(self, nodePath = None):
|
||||
# Record new parent
|
||||
@ -486,7 +486,7 @@ class DirectSession(PandaObject):
|
||||
def flash(self, nodePath = 'None Given'):
|
||||
""" Highlight an object by setting it red for a few seconds """
|
||||
# Clean up any existing task
|
||||
taskMgr.removeTasksNamed('flashNodePath')
|
||||
taskMgr.remove('flashNodePath')
|
||||
# Spawn new task if appropriate
|
||||
if nodePath == 'None Given':
|
||||
# If nothing specified, try selected node path
|
||||
@ -502,7 +502,7 @@ class DirectSession(PandaObject):
|
||||
# Temporarily set node path color
|
||||
nodePath.setColor(flashColor)
|
||||
# Clean up color in a few seconds
|
||||
t = taskMgr.spawnTaskNamed(
|
||||
t = taskMgr.add(
|
||||
Task.doLater(DIRECT_FLASH_DURATION,
|
||||
# This is just a dummy task
|
||||
Task.Task(self.flashDummy),
|
||||
@ -537,7 +537,7 @@ class DirectSession(PandaObject):
|
||||
def isolate(self, nodePath = 'None Given'):
|
||||
""" Show a node path and hide its siblings """
|
||||
# First kill the flashing task to avoid complications
|
||||
taskMgr.removeTasksNamed('flashNodePath')
|
||||
taskMgr.remove('flashNodePath')
|
||||
# Use currently selected node path if node selected
|
||||
if nodePath == 'None Given':
|
||||
nodePath = self.selected.last
|
||||
@ -551,7 +551,7 @@ class DirectSession(PandaObject):
|
||||
def toggleVis(self, nodePath = 'None Given'):
|
||||
""" Toggle visibility of node path """
|
||||
# First kill the flashing task to avoid complications
|
||||
taskMgr.removeTasksNamed('flashNodePath')
|
||||
taskMgr.remove('flashNodePath')
|
||||
if nodePath == 'None Given':
|
||||
# If nothing specified, try selected node path
|
||||
nodePath = self.selected.last
|
||||
@ -691,8 +691,8 @@ class DirectSession(PandaObject):
|
||||
|
||||
# UTILITY FUNCTIONS
|
||||
def message(self, text):
|
||||
taskMgr.removeTasksNamed('hideDirectMessage')
|
||||
taskMgr.removeTasksNamed('hideDirectMessageLater')
|
||||
taskMgr.remove('hideDirectMessage')
|
||||
taskMgr.remove('hideDirectMessageLater')
|
||||
self.directMessageReadout.reparentTo(aspect2d)
|
||||
self.directMessageReadout.setText(text)
|
||||
self.hideDirectMessageLater()
|
||||
@ -700,7 +700,7 @@ class DirectSession(PandaObject):
|
||||
def hideDirectMessageLater(self):
|
||||
seq = Task.doLater(3.0, Task.Task(self.hideDirectMessage),
|
||||
'hideDirectMessage')
|
||||
t = taskMgr.spawnTaskNamed(seq, 'hideDirectMessageLater')
|
||||
t = taskMgr.add(seq, 'hideDirectMessageLater')
|
||||
|
||||
def hideDirectMessage(self, state):
|
||||
self.directMessageReadout.reparentTo(hidden)
|
||||
@ -831,14 +831,13 @@ class DisplayRegionList(PandaObject):
|
||||
|
||||
def stop(self):
|
||||
# Kill the existing context task
|
||||
taskMgr.removeTasksNamed('DIRECTContextTask')
|
||||
taskMgr.remove('DIRECTContextTask')
|
||||
|
||||
def spawnContextTask(self):
|
||||
taskMgr.spawnTaskNamed(Task.Task(self.contextTask),
|
||||
'DIRECTContextTask')
|
||||
taskMgr.add(self.contextTask, 'DIRECTContextTask')
|
||||
|
||||
def removeContextTask(self):
|
||||
taskMgr.removeTasksNamed('DIRECTContextTask')
|
||||
taskMgr.remove('DIRECTContextTask')
|
||||
|
||||
def contextTask(self, state):
|
||||
# Window Data
|
||||
|
@ -18,8 +18,8 @@ def lerpBackgroundColor(r,g,b,duration):
|
||||
b = sf * state.ec[2] + (1 - sf) * state.sc[2]
|
||||
setBackgroundColor(r,g,b)
|
||||
return Task.cont
|
||||
taskMgr.removeTasksNamed('lerpBackgroundColor')
|
||||
t = taskMgr.spawnMethodNamed(lerpColor, 'lerpBackgroundColor')
|
||||
taskMgr.remove('lerpBackgroundColor')
|
||||
t = taskMgr.add(lerpColor, 'lerpBackgroundColor')
|
||||
t.time = 0.0
|
||||
t.duration = duration
|
||||
t.sc = base.win.getGsg().getColorClearValue()
|
||||
|
@ -106,12 +106,12 @@ class Mopath(PandaObject):
|
||||
self.node = node
|
||||
self.loop = loop
|
||||
self.stop()
|
||||
t = taskMgr.spawnMethodNamed(self.__playTask, self.name + '-play')
|
||||
t = taskMgr.add(self.__playTask, self.name + '-play')
|
||||
t.currentTime = time
|
||||
t.lastTime = globalClock.getFrameTime()
|
||||
|
||||
def stop(self):
|
||||
taskMgr.removeTasksNamed(self.name + '-play')
|
||||
taskMgr.remove(self.name + '-play')
|
||||
|
||||
def __playTask(self, state):
|
||||
time = globalClock.getFrameTime()
|
||||
|
@ -71,11 +71,11 @@ class ClientRepository(DirectObject.DirectObject):
|
||||
task = Task.Task(self.rawReaderPollUntilEmpty)
|
||||
# Start with empty string
|
||||
task.currentRawString = ""
|
||||
taskMgr.spawnTaskNamed(task, "rawReaderPollTask")
|
||||
taskMgr.add(task, "rawReaderPollTask")
|
||||
return None
|
||||
|
||||
def stopRawReaderPollTask(self):
|
||||
taskMgr.removeTasksNamed("rawReaderPollTask")
|
||||
taskMgr.remove("rawReaderPollTask")
|
||||
return None
|
||||
|
||||
def rawReaderPollUntilEmpty(self, task):
|
||||
@ -107,12 +107,11 @@ class ClientRepository(DirectObject.DirectObject):
|
||||
# Stop any tasks we are running now
|
||||
self.stopRawReaderPollTask()
|
||||
self.stopReaderPollTask()
|
||||
task = Task.Task(self.readerPollUntilEmpty)
|
||||
taskMgr.spawnTaskNamed(task, "readerPollTask")
|
||||
taskMgr.add(self.readerPollUntilEmpty, "readerPollTask")
|
||||
return None
|
||||
|
||||
def stopReaderPollTask(self):
|
||||
taskMgr.removeTasksNamed("readerPollTask")
|
||||
taskMgr.remove("readerPollTask")
|
||||
return None
|
||||
|
||||
def readerPollUntilEmpty(self, task):
|
||||
|
@ -122,9 +122,9 @@ class DistributedSmoothNode(DistributedNode.DistributedNode):
|
||||
|
||||
elif not self.smoothStarted:
|
||||
taskName = self.taskName("smooth")
|
||||
taskMgr.removeTasksNamed(taskName)
|
||||
taskMgr.remove(taskName)
|
||||
self.reloadPosition()
|
||||
taskMgr.spawnMethodNamed(self.doSmoothTask, taskName)
|
||||
taskMgr.add(self.doSmoothTask, taskName)
|
||||
self.smoothStarted = 1
|
||||
|
||||
return
|
||||
@ -137,7 +137,7 @@ class DistributedSmoothNode(DistributedNode.DistributedNode):
|
||||
"""
|
||||
if self.smoothStarted:
|
||||
taskName = self.taskName("smooth")
|
||||
taskMgr.removeTasksNamed(taskName)
|
||||
taskMgr.remove(taskName)
|
||||
self.forceToTruePosition()
|
||||
self.smoothStarted = 0
|
||||
return
|
||||
|
@ -1,103 +1,101 @@
|
||||
"""ServerRepository module: contains the ServerRepository class"""
|
||||
|
||||
from PandaModules import *
|
||||
from TaskManagerGlobal import *
|
||||
from MsgTypes import *
|
||||
import Task
|
||||
import DirectNotifyGlobal
|
||||
|
||||
class ServerRepository:
|
||||
|
||||
def __init__(self, tcpPort, udpPort):
|
||||
self.qcm = QueuedConnectionManager()
|
||||
self.qcl = QueuedConnectionListener(self.qcm, 0)
|
||||
self.qcr = QueuedConnectionReader(self.qcm, 0)
|
||||
self.cw = ConnectionWriter(self.qcm,0)
|
||||
self.tcpRendezvous = self.qcm.openTCPServerRendezvous(tcpPort, 10)
|
||||
print self.tcpRendezvous
|
||||
self.qcl.addConnection(self.tcpRendezvous)
|
||||
self.startListenerPollTask()
|
||||
self.startReaderPollTask()
|
||||
self.startResetPollTask()
|
||||
return None
|
||||
|
||||
def startListenerPollTask(self):
|
||||
task = Task.Task(self.listenerPoll)
|
||||
taskMgr.spawnTaskNamed(task, "serverListenerPollTask")
|
||||
return None
|
||||
|
||||
def listenerPoll(self, task):
|
||||
if self.qcl.newConnectionAvailable():
|
||||
print "New connection is available"
|
||||
rendezvous = PointerToConnection()
|
||||
netAddress = NetAddress()
|
||||
newConnection = PointerToConnection()
|
||||
retVal = self.qcl.getNewConnection(rendezvous, netAddress,
|
||||
newConnection)
|
||||
if retVal:
|
||||
# Crazy dereferencing
|
||||
newConnection=newConnection.p()
|
||||
self.qcr.addConnection(newConnection)
|
||||
print "Got a connection!"
|
||||
self.lastConnection = newConnection
|
||||
else:
|
||||
ServerRepository.notify.warning(
|
||||
"getNewConnection returned false")
|
||||
return Task.cont
|
||||
|
||||
def startReaderPollTask(self):
|
||||
task = Task.Task(self.readerPollUntilEmpty)
|
||||
taskMgr.spawnTaskNamed(task, "serverReaderPollTask")
|
||||
return None
|
||||
|
||||
def readerPollUntilEmpty(self, task):
|
||||
while self.readerPollOnce():
|
||||
pass
|
||||
return Task.cont
|
||||
|
||||
def readerPollOnce(self):
|
||||
availGetVal = self.qcr.dataAvailable()
|
||||
if availGetVal:
|
||||
datagram = NetDatagram()
|
||||
readRetVal = self.qcr.getData(datagram)
|
||||
if readRetVal:
|
||||
self.handleDatagram(datagram)
|
||||
else:
|
||||
ClientRepository.notify.warning("getData returned false")
|
||||
return availGetVal
|
||||
|
||||
def handleDatagram(self, datagram):
|
||||
print "Server got a datagram!"
|
||||
dgi = DatagramIterator(datagram)
|
||||
print dgi.getUint16()
|
||||
print dgi.getString()
|
||||
print dgi.getUint32()
|
||||
print dgi.getUint16()
|
||||
|
||||
newDatagram = Datagram()
|
||||
newDatagram.addUint16(LOGIN_RESPONSE)
|
||||
newDatagram.addUint8(ord('s'))
|
||||
self.cw.send(newDatagram, self.lastConnection)
|
||||
return None
|
||||
|
||||
def sendAvatarGenerate(self):
|
||||
datagram = Datagram()
|
||||
# Message type is 1
|
||||
datagram.addUint16(ALL_OBJECT_GENERATE_WITH_REQUIRED)
|
||||
# Avatar class type is 2
|
||||
datagram.addUint8(2)
|
||||
# A sample id
|
||||
datagram.addUint32(10)
|
||||
# The only required field is the zone field
|
||||
datagram.addUint32(999)
|
||||
self.cw.send(datagram, self.lastConnection)
|
||||
|
||||
def startResetPollTask(self):
|
||||
return None
|
||||
|
||||
def resetPollUntilEmpty(self):
|
||||
return None
|
||||
|
||||
def resetPollOnce(self):
|
||||
return None
|
||||
|
||||
"""ServerRepository module: contains the ServerRepository class"""
|
||||
|
||||
from PandaModules import *
|
||||
from TaskManagerGlobal import *
|
||||
from MsgTypes import *
|
||||
import Task
|
||||
import DirectNotifyGlobal
|
||||
|
||||
class ServerRepository:
|
||||
|
||||
def __init__(self, tcpPort, udpPort):
|
||||
self.qcm = QueuedConnectionManager()
|
||||
self.qcl = QueuedConnectionListener(self.qcm, 0)
|
||||
self.qcr = QueuedConnectionReader(self.qcm, 0)
|
||||
self.cw = ConnectionWriter(self.qcm,0)
|
||||
self.tcpRendezvous = self.qcm.openTCPServerRendezvous(tcpPort, 10)
|
||||
print self.tcpRendezvous
|
||||
self.qcl.addConnection(self.tcpRendezvous)
|
||||
self.startListenerPollTask()
|
||||
self.startReaderPollTask()
|
||||
self.startResetPollTask()
|
||||
return None
|
||||
|
||||
def startListenerPollTask(self):
|
||||
taskMgr.add(self.listenerPoll, "serverListenerPollTask")
|
||||
return None
|
||||
|
||||
def listenerPoll(self, task):
|
||||
if self.qcl.newConnectionAvailable():
|
||||
print "New connection is available"
|
||||
rendezvous = PointerToConnection()
|
||||
netAddress = NetAddress()
|
||||
newConnection = PointerToConnection()
|
||||
retVal = self.qcl.getNewConnection(rendezvous, netAddress,
|
||||
newConnection)
|
||||
if retVal:
|
||||
# Crazy dereferencing
|
||||
newConnection=newConnection.p()
|
||||
self.qcr.addConnection(newConnection)
|
||||
print "Got a connection!"
|
||||
self.lastConnection = newConnection
|
||||
else:
|
||||
ServerRepository.notify.warning(
|
||||
"getNewConnection returned false")
|
||||
return Task.cont
|
||||
|
||||
def startReaderPollTask(self):
|
||||
taskMgr.add(self.readerPollUntilEmpty, "serverReaderPollTask")
|
||||
return None
|
||||
|
||||
def readerPollUntilEmpty(self, task):
|
||||
while self.readerPollOnce():
|
||||
pass
|
||||
return Task.cont
|
||||
|
||||
def readerPollOnce(self):
|
||||
availGetVal = self.qcr.dataAvailable()
|
||||
if availGetVal:
|
||||
datagram = NetDatagram()
|
||||
readRetVal = self.qcr.getData(datagram)
|
||||
if readRetVal:
|
||||
self.handleDatagram(datagram)
|
||||
else:
|
||||
ClientRepository.notify.warning("getData returned false")
|
||||
return availGetVal
|
||||
|
||||
def handleDatagram(self, datagram):
|
||||
print "Server got a datagram!"
|
||||
dgi = DatagramIterator(datagram)
|
||||
print dgi.getUint16()
|
||||
print dgi.getString()
|
||||
print dgi.getUint32()
|
||||
print dgi.getUint16()
|
||||
|
||||
newDatagram = Datagram()
|
||||
newDatagram.addUint16(LOGIN_RESPONSE)
|
||||
newDatagram.addUint8(ord('s'))
|
||||
self.cw.send(newDatagram, self.lastConnection)
|
||||
return None
|
||||
|
||||
def sendAvatarGenerate(self):
|
||||
datagram = Datagram()
|
||||
# Message type is 1
|
||||
datagram.addUint16(ALL_OBJECT_GENERATE_WITH_REQUIRED)
|
||||
# Avatar class type is 2
|
||||
datagram.addUint8(2)
|
||||
# A sample id
|
||||
datagram.addUint32(10)
|
||||
# The only required field is the zone field
|
||||
datagram.addUint32(999)
|
||||
self.cw.send(datagram, self.lastConnection)
|
||||
|
||||
def startResetPollTask(self):
|
||||
return None
|
||||
|
||||
def resetPollUntilEmpty(self):
|
||||
return None
|
||||
|
||||
def resetPollOnce(self):
|
||||
return None
|
||||
|
||||
|
@ -319,7 +319,7 @@
|
||||
return lerpTask
|
||||
else:
|
||||
# spawn the lerp task
|
||||
taskMgr.spawnTaskNamed(lerpTask, taskName)
|
||||
taskMgr.add(lerpTask, taskName)
|
||||
return lerpTask
|
||||
|
||||
def __autoLerp(self, functorFunc, time, blendType, taskName):
|
||||
|
@ -789,18 +789,18 @@ class DirectGuiWidget(DirectGuiBase, NodePath):
|
||||
#base.mouseWatcherNode.setModifierButtons(mb)
|
||||
|
||||
def editStart(self, event):
|
||||
taskMgr.removeTasksNamed('guiEditTask')
|
||||
taskMgr.remove('guiEditTask')
|
||||
vWidget2render2d = self.getPos(render2d)
|
||||
vMouse2render2d = Point3(event.getMouse()[0], 0, event.getMouse()[1])
|
||||
editVec = Vec3(vWidget2render2d - vMouse2render2d)
|
||||
if base.mouseWatcherNode.getModifierButtons().isDown(
|
||||
KeyboardButton.control()):
|
||||
t = taskMgr.spawnMethodNamed(self.guiScaleTask, 'guiEditTask')
|
||||
t = taskMgr.add(self.guiScaleTask, 'guiEditTask')
|
||||
t.refPos = vWidget2render2d
|
||||
t.editVecLen = editVec.length()
|
||||
t.initScale = self.getScale()
|
||||
else:
|
||||
t = taskMgr.spawnMethodNamed(self.guiDragTask, 'guiEditTask')
|
||||
t = taskMgr.add(self.guiDragTask, 'guiEditTask')
|
||||
t.editVec = editVec
|
||||
|
||||
def guiScaleTask(self, state):
|
||||
@ -827,7 +827,7 @@ class DirectGuiWidget(DirectGuiBase, NodePath):
|
||||
return Task.cont
|
||||
|
||||
def editStop(self, event):
|
||||
taskMgr.removeTasksNamed('guiEditTask')
|
||||
taskMgr.remove('guiEditTask')
|
||||
|
||||
def setState(self):
|
||||
if type(self['state']) == type(0):
|
||||
|
@ -12,8 +12,8 @@ def dummyCmd(index):
|
||||
# Define some commands to bind to enter, exit and click events
|
||||
def shrink(db):
|
||||
db['text2_text'] = 'Hi!'
|
||||
taskMgr.removeTasksNamed('shrink')
|
||||
taskMgr.removeTasksNamed('expand')
|
||||
taskMgr.remove('shrink')
|
||||
taskMgr.remove('expand')
|
||||
# Get a handle on the geometry for the rollover state
|
||||
rolloverSmiley = db.component('geom2')
|
||||
rolloverSmiley.setScale(db.component('geom0').getScale()[0])
|
||||
@ -22,17 +22,17 @@ def shrink(db):
|
||||
|
||||
def expand(db):
|
||||
db['text0_text'] = 'Bye!'
|
||||
taskMgr.removeTasksNamed('shrink')
|
||||
taskMgr.removeTasksNamed('expand')
|
||||
taskMgr.remove('shrink')
|
||||
taskMgr.remove('expand')
|
||||
db.component('geom0').setScale(db.component('geom2').getScale()[0])
|
||||
db.component('geom0').lerpScale(1,1,1, 1, blendType = 'easeInOut',
|
||||
task = 'expand')
|
||||
db.component('geom2').clearColor()
|
||||
|
||||
def ouch(db):
|
||||
taskMgr.removeTasksNamed('shrink')
|
||||
taskMgr.removeTasksNamed('expand')
|
||||
taskMgr.removeTasksNamed('runAway')
|
||||
taskMgr.remove('shrink')
|
||||
taskMgr.remove('expand')
|
||||
taskMgr.remove('runAway')
|
||||
db.component('geom0').setScale(db.component('geom2').getScale()[0])
|
||||
db.component('geom1').setScale(db.component('geom2').getScale()[0])
|
||||
db['text2_text'] = 'Ouch!'
|
||||
|
@ -61,7 +61,7 @@ class DirectScrolledList(DirectFrame):
|
||||
self.numItemsVisible = self["numItemsVisible"]
|
||||
|
||||
def destroy(self):
|
||||
taskMgr.removeTasksNamed(self.taskName("scroll"))
|
||||
taskMgr.remove(self.taskName("scroll"))
|
||||
DirectFrame.destroy(self)
|
||||
|
||||
def scrollBy(self, delta):
|
||||
@ -122,7 +122,7 @@ class DirectScrolledList(DirectFrame):
|
||||
task.prevTime = 0.0
|
||||
task.delta = 1
|
||||
self.scrollBy(task.delta)
|
||||
taskMgr.spawnTaskNamed(task, self.taskName("scroll"))
|
||||
taskMgr.add(task, self.taskName("scroll"))
|
||||
|
||||
def __decButtonDown(self, event):
|
||||
task = Task.Task(self.__scrollByTask)
|
||||
@ -130,10 +130,10 @@ class DirectScrolledList(DirectFrame):
|
||||
task.prevTime = 0.0
|
||||
task.delta = -1
|
||||
self.scrollBy(task.delta)
|
||||
taskMgr.spawnTaskNamed(task, self.taskName("scroll"))
|
||||
taskMgr.add(task, self.taskName("scroll"))
|
||||
|
||||
def __buttonUp(self, event):
|
||||
taskMgr.removeTasksNamed(self.taskName("scroll"))
|
||||
taskMgr.remove(self.taskName("scroll"))
|
||||
|
||||
def addItem(self, item):
|
||||
"""
|
||||
|
@ -94,7 +94,7 @@ class Interval(DirectObject):
|
||||
t0 = self.duration
|
||||
|
||||
# Kill ongoing play task
|
||||
taskMgr.removeTasksNamed(self.name + '-play')
|
||||
taskMgr.remove(self.name + '-play')
|
||||
# Start new one
|
||||
self.offset = t0
|
||||
self.startT = self.clock.getFrameTime()
|
||||
@ -110,7 +110,7 @@ class Interval(DirectObject):
|
||||
assert(t0 <= self.endTime)
|
||||
|
||||
# Spawn task
|
||||
taskMgr.spawnMethodNamed(self.__playTask, self.name + '-play')
|
||||
taskMgr.add(self.__playTask, self.name + '-play')
|
||||
|
||||
def loop(self, t0=0.0, duration=0.0, scale=1.0):
|
||||
self.accept(self.name + '-loop', self.play,
|
||||
@ -125,7 +125,7 @@ class Interval(DirectObject):
|
||||
for stopEvent in self.stopEventList:
|
||||
messenger.send(stopEvent)
|
||||
# Kill task
|
||||
taskMgr.removeTasksNamed(self.name + '-play')
|
||||
taskMgr.remove(self.name + '-play')
|
||||
# No more looping.
|
||||
self.ignore(self.name + '-loop')
|
||||
return self.curr_t
|
||||
@ -188,7 +188,7 @@ class Interval(DirectObject):
|
||||
# So when you drag scale with mouse its like you started a playback
|
||||
def onPress(s=self,es=es):
|
||||
# Kill playback task
|
||||
taskMgr.removeTasksNamed(s.name + '-play')
|
||||
taskMgr.remove(s.name + '-play')
|
||||
# INIT interval
|
||||
s.setT(es.get(), event = IVAL_INIT)
|
||||
es.onPress = onPress
|
||||
|
@ -593,7 +593,7 @@ class LevelEditor(NodePath, PandaObject):
|
||||
# Disable Pie Menu mouse interaction
|
||||
self.disableMouse()
|
||||
# Remove insertion marker task
|
||||
taskMgr.removeTasksNamed('insertionMarkerTask')
|
||||
taskMgr.remove('insertionMarkerTask')
|
||||
|
||||
def reset(self, fDeleteToplevel = 1, fCreateToplevel = 1,
|
||||
fUpdateExplorer = 1):
|
||||
@ -1369,7 +1369,7 @@ class LevelEditor(NodePath, PandaObject):
|
||||
# Position it
|
||||
# First kill autoposition task so grid can jump to its final
|
||||
# destination (part of cleanup
|
||||
taskMgr.removeTasksNamed('autoPositionGrid')
|
||||
taskMgr.remove('autoPositionGrid')
|
||||
# Now find where to put node path
|
||||
if (hotKey is not None) and nodeClass.eq(DNA_PROP):
|
||||
# If its a prop and a copy, place it based upon current
|
||||
@ -2190,8 +2190,7 @@ class LevelEditor(NodePath, PandaObject):
|
||||
self.insertionMarker.create()
|
||||
|
||||
def spawnInsertionMarkerTask(self):
|
||||
t = Task.Task(self.insertionMarkerTask)
|
||||
taskMgr.spawnTaskNamed(t, 'insertionMarkerTask')
|
||||
taskMgr.add(self.insertionMarkerTask, 'insertionMarkerTask')
|
||||
|
||||
def insertionMarkerTask(self, state):
|
||||
self.insertionMarker.setPosHpr(direct.grid, 0,0,0, 0,0,0)
|
||||
@ -2227,7 +2226,7 @@ class LevelEditor(NodePath, PandaObject):
|
||||
return 1
|
||||
|
||||
def autoPositionGrid(self):
|
||||
taskMgr.removeTasksNamed('autoPositionGrid')
|
||||
taskMgr.remove('autoPositionGrid')
|
||||
# Move grid to prepare for placement of next object
|
||||
selectedNode = direct.selected.last
|
||||
if selectedNode:
|
||||
@ -2266,12 +2265,12 @@ class LevelEditor(NodePath, PandaObject):
|
||||
t.uponDeath = self.autoPositionCleanup
|
||||
|
||||
# Also move the camera
|
||||
taskMgr.removeTasksNamed('autoMoveDelay')
|
||||
taskMgr.remove('autoMoveDelay')
|
||||
handlesToCam = direct.widget.getPos(direct.camera)
|
||||
handlesToCam = handlesToCam * ( direct.dr.near/handlesToCam[1])
|
||||
if ((abs(handlesToCam[0]) > (direct.dr.nearWidth * 0.4)) or
|
||||
(abs(handlesToCam[2]) > (direct.dr.nearHeight * 0.4))):
|
||||
taskMgr.removeTasksNamed('manipulateCamera')
|
||||
taskMgr.remove('manipulateCamera')
|
||||
direct.cameraControl.centerCamIn(0.5)
|
||||
|
||||
def autoPositionCleanup(self,state):
|
||||
|
@ -35,13 +35,13 @@ class PieMenu(NodePath, PandaObject):
|
||||
self.action(value)
|
||||
|
||||
def removePieMenuTask(self):
|
||||
taskMgr.removeTasksNamed('pieMenuTask')
|
||||
taskMgr.remove('pieMenuTask')
|
||||
self.reparentTo(hidden)
|
||||
self.lines.reset()
|
||||
|
||||
def spawnPieMenuTask(self):
|
||||
# Make sure no errant tasks lying around
|
||||
taskMgr.removeTasksNamed('pieMenuTask')
|
||||
taskMgr.remove('pieMenuTask')
|
||||
|
||||
# Where did the user press the button?
|
||||
self.originX = direct.dr.mouseX
|
||||
@ -61,8 +61,7 @@ class PieMenu(NodePath, PandaObject):
|
||||
|
||||
# Spawn task to update line and select new texture
|
||||
self.currItem = -1
|
||||
t = Task.Task(self.pieMenuTask)
|
||||
taskMgr.spawnTaskNamed(t, 'pieMenuTask')
|
||||
taskMgr.add(self.pieMenuTask, 'pieMenuTask')
|
||||
|
||||
def pieMenuTask(self,state):
|
||||
mouseX = direct.dr.mouseX
|
||||
|
@ -73,7 +73,7 @@ class EventManager:
|
||||
|
||||
|
||||
def restart(self):
|
||||
taskMgr.spawnTaskNamed(Task.Task(self.eventLoop), 'eventManager')
|
||||
taskMgr.add(self.eventLoop, 'eventManager')
|
||||
|
||||
def shutdown(self):
|
||||
taskMgr.removeTasksNamed('eventManager')
|
||||
taskMgr.remove('eventManager')
|
||||
|
@ -437,15 +437,14 @@ class ShowBase:
|
||||
"""enableParticles(self)"""
|
||||
self.particleMgrEnabled = 1
|
||||
self.physicsMgrEnabled = 1
|
||||
self.taskMgr.removeTasksNamed('manager-update')
|
||||
self.taskMgr.spawnTaskNamed(Task.Task(self.updateManagers),
|
||||
'manager-update')
|
||||
self.taskMgr.remove('manager-update')
|
||||
self.taskMgr.add(self.updateManagers, 'manager-update')
|
||||
|
||||
def disableParticles(self):
|
||||
"""enableParticles(self)"""
|
||||
self.particleMgrEnabled = 0
|
||||
self.physicsMgrEnabled = 0
|
||||
self.taskMgr.removeTasksNamed('manager-update')
|
||||
self.taskMgr.remove('manager-update')
|
||||
|
||||
def toggleParticles(self):
|
||||
if self.particleMgrEnabled == 0:
|
||||
@ -555,15 +554,15 @@ class ShowBase:
|
||||
self.shutdown()
|
||||
# give the igloop task a reasonably "late" priority,
|
||||
# so that it will get run after most tasks
|
||||
self.taskMgr.spawnTaskNamed(Task.Task(self.igloop, 50), 'igloop')
|
||||
self.taskMgr.add(self.igloop, 'igloop', priority = 50)
|
||||
# give the dataloop task a reasonably "early" priority,
|
||||
# so that it will get run before most tasks
|
||||
self.taskMgr.spawnTaskNamed(Task.Task(self.dataloop, -50), 'dataloop')
|
||||
self.taskMgr.add(self.dataloop, 'dataloop', priority = -50)
|
||||
self.eventMgr.restart()
|
||||
|
||||
def shutdown(self):
|
||||
self.taskMgr.removeTasksNamed('igloop')
|
||||
self.taskMgr.removeTasksNamed('dataloop')
|
||||
self.taskMgr.remove('igloop')
|
||||
self.taskMgr.remove('dataloop')
|
||||
self.eventMgr.shutdown()
|
||||
|
||||
def toggleBackface(self):
|
||||
@ -834,7 +833,7 @@ class ShowBase:
|
||||
"""
|
||||
globalClock.setMode(ClockObject.MNonRealTime)
|
||||
globalClock.setDt(1.0/float(fps))
|
||||
t = taskMgr.spawnMethodNamed(self._movieTask, namePrefix + '_task')
|
||||
t = taskMgr.add(self._movieTask, namePrefix + '_task')
|
||||
t.endT = globalClock.getFrameTime() + duration
|
||||
t.frameIndex = 1
|
||||
t.outputString = namePrefix + '_%0' + `sd` + 'd.' + format
|
||||
|
@ -5,8 +5,6 @@ import Pmw
|
||||
import __builtin__
|
||||
__builtin__.tkroot = Pmw.initialise()
|
||||
|
||||
import Task
|
||||
|
||||
def tkloop(self):
|
||||
# Do all the tkinter events waiting on this frame
|
||||
# dooneevent will return 0 if there are no more events
|
||||
@ -21,6 +19,6 @@ def tkloop(self):
|
||||
from TaskManagerGlobal import *
|
||||
|
||||
# Spawn this task
|
||||
taskMgr.spawnTaskNamed(Task.Task(tkloop), "tkloop")
|
||||
taskMgr.add(tkloop, "tkloop")
|
||||
|
||||
|
||||
|
@ -48,7 +48,7 @@ class Transitions:
|
||||
Task.Task(self.__fadeInLerpDone))
|
||||
# Spawn the sequence
|
||||
if not block:
|
||||
taskMgr.spawnTaskNamed(task, self.fadeTaskName)
|
||||
taskMgr.add(task, self.fadeTaskName)
|
||||
else:
|
||||
return task
|
||||
|
||||
@ -57,7 +57,7 @@ class Transitions:
|
||||
As a sequence: Fade in, execute the given task
|
||||
"""
|
||||
seq = Task.sequence(self.fadeIn(time, block=1), task)
|
||||
taskMgr.spawnTaskNamed(seq, 'fadeInTaskSeq')
|
||||
taskMgr.add(seq, 'fadeInTaskSeq')
|
||||
|
||||
def fadeOut(self, t=0.5, block=0):
|
||||
"""
|
||||
@ -125,13 +125,13 @@ class Transitions:
|
||||
seq = Task.sequence(self.fadeOut(time, block=1), task)
|
||||
|
||||
# do it
|
||||
taskMgr.spawnTaskNamed(seq, 'fadeOutTaskSeq')
|
||||
taskMgr.add(seq, 'fadeOutTaskSeq')
|
||||
|
||||
def noFade(self):
|
||||
"""
|
||||
Removes any current fade tasks and parents the fade polygon away
|
||||
"""
|
||||
taskMgr.removeTasksNamed(self.fadeTaskName)
|
||||
taskMgr.remove(self.fadeTaskName)
|
||||
if self.fade != None:
|
||||
self.fade.reparentTo(hidden)
|
||||
|
||||
@ -164,7 +164,7 @@ class Transitions:
|
||||
Task.Task(self.__irisInLerpDone))
|
||||
# Spawn the sequence
|
||||
if not block:
|
||||
taskMgr.spawnTaskNamed(task, self.irisTaskName)
|
||||
taskMgr.add(task, self.irisTaskName)
|
||||
else:
|
||||
return task
|
||||
|
||||
@ -173,7 +173,7 @@ class Transitions:
|
||||
As a sequence: iris in, execute the given task
|
||||
"""
|
||||
seq = Task.sequence(self.irisIn(time, block=1), task)
|
||||
taskMgr.spawnTaskNamed(seq, 'irisInTaskSeq')
|
||||
taskMgr.add(seq, 'irisInTaskSeq')
|
||||
|
||||
def irisOutLerpDone(self, task):
|
||||
# This is a helper function to the fadeIn sequence
|
||||
@ -207,7 +207,7 @@ class Transitions:
|
||||
Task.Task(self.irisOutLerpDone))
|
||||
# Spawn the sequence
|
||||
if not block:
|
||||
taskMgr.spawnTaskNamed(task, self.irisTaskName)
|
||||
taskMgr.add(task, self.irisTaskName)
|
||||
else:
|
||||
return task
|
||||
|
||||
@ -227,13 +227,13 @@ class Transitions:
|
||||
seq = Task.sequence(self.irisOut(time, block=1), task)
|
||||
|
||||
# do it
|
||||
taskMgr.spawnTaskNamed(seq, 'irisOutTaskSeq')
|
||||
taskMgr.add(seq, 'irisOutTaskSeq')
|
||||
|
||||
def noIris(self):
|
||||
"""
|
||||
Removes any current iris tasks and parents the iris polygon away
|
||||
"""
|
||||
taskMgr.removeTasksNamed(self.irisTaskName)
|
||||
taskMgr.remove(self.irisTaskName)
|
||||
if self.iris != None:
|
||||
self.iris.reparentTo(hidden)
|
||||
|
||||
|
@ -53,18 +53,6 @@ def print_exc_plus():
|
||||
# Store the global clock
|
||||
globalClock = ClockObject.getGlobalClock()
|
||||
|
||||
def getTimeFrame():
|
||||
# WARNING: If you are testing tasks without an igloop,
|
||||
# you must manually tick the clock
|
||||
|
||||
# Ask for the time last frame
|
||||
t = globalClock.getFrameTime()
|
||||
|
||||
# Get the new frame count
|
||||
f = globalClock.getFrameCount()
|
||||
|
||||
return t, f
|
||||
|
||||
|
||||
class Task:
|
||||
count = 0
|
||||
@ -120,17 +108,6 @@ def pause(delayTime):
|
||||
task.delayTime = delayTime
|
||||
return task
|
||||
|
||||
|
||||
def release():
|
||||
def func(self):
|
||||
# A release is immediately done
|
||||
# TaskManager.notify.debug('release done: ' + self.name)
|
||||
return done
|
||||
task = Task(func)
|
||||
task.name = 'release'
|
||||
return task
|
||||
|
||||
|
||||
def sequence(*taskList):
|
||||
return make_sequence(taskList)
|
||||
|
||||
@ -240,66 +217,6 @@ def make_loop(taskList):
|
||||
return task
|
||||
|
||||
|
||||
def makeSpawner(task, taskName, taskMgr):
|
||||
def func(self):
|
||||
self.taskMgr.spawnTaskNamed(self.task, self.taskName)
|
||||
return done
|
||||
newTask = Task(func)
|
||||
newTask.name = taskName + "-spawner"
|
||||
newTask.task = task
|
||||
newTask.taskName = taskName
|
||||
newTask.taskMgr = taskMgr
|
||||
return newTask
|
||||
|
||||
|
||||
def makeSequenceFromTimeline(timelineList, taskMgr):
|
||||
timeline = []
|
||||
lastPause = 0
|
||||
sortedList = list(timelineList)
|
||||
sortedList.sort()
|
||||
for triple in sortedList:
|
||||
t = triple[0] - lastPause
|
||||
lastPause = triple[0]
|
||||
task = triple[1]
|
||||
taskName = triple[2]
|
||||
timeline.append(pause(t))
|
||||
timeline.append(makeSpawner(task, taskName, taskMgr))
|
||||
return make_sequence(timeline)
|
||||
|
||||
|
||||
def timeline(*timelineList):
|
||||
def func(self):
|
||||
# Step our sub task manager (returns the number of tasks remaining)
|
||||
lenTaskList = self.taskMgr.step()
|
||||
|
||||
# The sequence start time is the same as our start time
|
||||
self.sequence.time = self.time
|
||||
self.sequence.frame = self.frame
|
||||
|
||||
if (not self.sequenceDone):
|
||||
# Execute the sequence for this frame
|
||||
seqRet = self.sequence(self.sequence)
|
||||
# See if sequence is done
|
||||
if (seqRet == done):
|
||||
self.sequenceDone = 1
|
||||
# See if the timeline is done
|
||||
if (lenTaskList == 0):
|
||||
# TaskManager.notify.debug('timeline done: ' + self.name)
|
||||
return done
|
||||
else:
|
||||
return cont
|
||||
else:
|
||||
return cont
|
||||
else:
|
||||
return cont
|
||||
task = Task(func)
|
||||
task.name = 'timeline'
|
||||
task.taskMgr = TaskManager()
|
||||
task.sequence = makeSequenceFromTimeline(timelineList, task.taskMgr)
|
||||
task.sequenceDone = 0
|
||||
return task
|
||||
|
||||
|
||||
class TaskManager:
|
||||
|
||||
notify = None
|
||||
@ -308,7 +225,7 @@ class TaskManager:
|
||||
self.running = 0
|
||||
self.stepping = 0
|
||||
self.taskList = []
|
||||
self.currentTime, self.currentFrame = getTimeFrame()
|
||||
self.currentTime, self.currentFrame = self.__getTimeFrame()
|
||||
if (TaskManager.notify == None):
|
||||
TaskManager.notify = directNotify.newCategory("TaskManager")
|
||||
self.taskTimerVerbose = 0
|
||||
@ -324,11 +241,32 @@ class TaskManager:
|
||||
self.fVerbose = value
|
||||
messenger.send('TaskManager-setVerbose', sentArgs = [value])
|
||||
|
||||
def spawnMethodNamed(self, func, name):
|
||||
task = Task(func)
|
||||
return self.spawnTaskNamed(task, name)
|
||||
def add(self, funcOrTask, name, priority = 0):
|
||||
"""
|
||||
Add a new task to the taskMgr.
|
||||
You can add a Task object or a method that takes one argument.
|
||||
"""
|
||||
if isinstance(funcOrTask, Task):
|
||||
funcOrTask.setPriority(priority)
|
||||
return self.__spawnTaskNamed(funcOrTask, name)
|
||||
elif callable(funcOrTask):
|
||||
return self.__spawnMethodNamed(funcOrTask, name, priority)
|
||||
else:
|
||||
self.notify.error('Tried to add a task that was not a Task or a func')
|
||||
|
||||
def spawnTaskNamed(self, task, name):
|
||||
def remove(self, taskOrName):
|
||||
if type(taskOrName) == type(''):
|
||||
return self.__removeTasksNamed(taskOrName)
|
||||
elif isinstance(taskOrName, Task):
|
||||
return self.__removeTask(taskOrName)
|
||||
else:
|
||||
self.notify.error('remove takes a string or a Task')
|
||||
|
||||
def __spawnMethodNamed(self, func, name, priority=0):
|
||||
task = Task(func, priority)
|
||||
return self.__spawnTaskNamed(task, name)
|
||||
|
||||
def __spawnTaskNamed(self, task, name):
|
||||
if TaskManager.notify.getDebug():
|
||||
TaskManager.notify.debug('spawning task named: ' + name)
|
||||
task.name = name
|
||||
@ -368,17 +306,11 @@ class TaskManager:
|
||||
task = Task(func)
|
||||
seq = doLater(delayTime, task, taskName)
|
||||
seq.laterTask = task
|
||||
return self.spawnTaskNamed(seq, 'doLater-' + taskName)
|
||||
return self.__spawnTaskNamed(seq, taskName)
|
||||
|
||||
def removeAllTasks(self):
|
||||
# Make a shallow copy so we do not modify the list in place
|
||||
taskListCopy = self.taskList[:]
|
||||
for task in taskListCopy:
|
||||
self.removeTask(task)
|
||||
|
||||
def removeTask(self, task):
|
||||
# if TaskManager.notify.getDebug():
|
||||
# TaskManager.notify.debug('removing task: ' + `task`)
|
||||
def __removeTask(self, task):
|
||||
if TaskManager.notify.getDebug():
|
||||
TaskManager.notify.debug('removing task: ' + `task`)
|
||||
if task in self.taskList:
|
||||
self.taskList.remove(task)
|
||||
if task.uponDeath:
|
||||
@ -388,7 +320,7 @@ class TaskManager:
|
||||
messenger.send('TaskManager-removeTask',
|
||||
sentArgs = [task, task.name])
|
||||
|
||||
def removeTasksNamed(self, taskName):
|
||||
def __removeTasksNamed(self, taskName):
|
||||
if TaskManager.notify.getDebug():
|
||||
TaskManager.notify.debug('removing tasks named: ' + taskName)
|
||||
|
||||
@ -400,7 +332,7 @@ class TaskManager:
|
||||
|
||||
# Now iterate through the tasks we need to remove and remove them
|
||||
for task in removedTasks:
|
||||
self.removeTask(task)
|
||||
self.__removeTask(task)
|
||||
|
||||
# Return the number of tasks removed
|
||||
return len(removedTasks)
|
||||
@ -429,7 +361,7 @@ class TaskManager:
|
||||
|
||||
# Now iterate through the tasks we need to remove and remove them
|
||||
for task in removedTasks:
|
||||
self.removeTask(task)
|
||||
self.__removeTask(task)
|
||||
|
||||
# Return the number of tasks removed
|
||||
return len(removedTasks)
|
||||
@ -437,7 +369,7 @@ class TaskManager:
|
||||
def step(self):
|
||||
if TaskManager.notify.getDebug():
|
||||
TaskManager.notify.debug('step')
|
||||
self.currentTime, self.currentFrame = getTimeFrame()
|
||||
self.currentTime, self.currentFrame = self.__getTimeFrame()
|
||||
for task in self.taskList:
|
||||
task.setCurrentTimeFrame(self.currentTime, self.currentFrame)
|
||||
|
||||
@ -473,9 +405,9 @@ class TaskManager:
|
||||
if (ret == cont):
|
||||
continue
|
||||
elif (ret == done):
|
||||
self.removeTask(task)
|
||||
self.__removeTask(task)
|
||||
elif (ret == exit):
|
||||
self.removeTask(task)
|
||||
self.__removeTask(task)
|
||||
else:
|
||||
raise StandardError, "Task named %s did not return cont, exit, or done" % task.name
|
||||
return len(self.taskList)
|
||||
@ -589,90 +521,8 @@ class TaskManager:
|
||||
import TaskManagerPanel
|
||||
return TaskManagerPanel.TaskManagerPanel(self)
|
||||
|
||||
|
||||
"""
|
||||
import Task
|
||||
from ShowBaseGlobal import * # to get taskMgr, and run()
|
||||
|
||||
# sequence
|
||||
|
||||
def seq1(state):
|
||||
print 'seq1'
|
||||
return Task.done
|
||||
def seq2(state):
|
||||
print 'seq2'
|
||||
return Task.done
|
||||
|
||||
t = Task.sequence(Task.pause(1.0), Task.Task(seq1), Task.release(),
|
||||
Task.pause(3.0), Task.Task(seq2))
|
||||
taskMgr.spawnTaskNamed(t, 'sequence')
|
||||
run()
|
||||
|
||||
# If you want it to loop, make a loop
|
||||
t = Task.loop(Task.pause(1.0), Task.Task(seq1), Task.release(),
|
||||
Task.pause(3.0), Task.Task(seq2))
|
||||
taskMgr.spawnTaskNamed(t, 'sequence')
|
||||
run()
|
||||
|
||||
|
||||
|
||||
# timeline
|
||||
|
||||
def keyframe1(state):
|
||||
print 'keyframe1'
|
||||
return Task.done
|
||||
def keyframe2(state):
|
||||
print 'keyframe2'
|
||||
return Task.done
|
||||
def keyframe3(state):
|
||||
print 'keyframe3'
|
||||
return Task.done
|
||||
|
||||
testtl = Task.timeline(
|
||||
(0.5, Task.Task(keyframe1), 'key1'),
|
||||
(0.6, Task.Task(keyframe2), 'key2'),
|
||||
(0.7, Task.Task(keyframe3), 'key3')
|
||||
)
|
||||
|
||||
t = taskMgr.spawnTaskNamed(testtl, 'timeline')
|
||||
run()
|
||||
|
||||
# do later - returns a sequence
|
||||
|
||||
def foo(state):
|
||||
print 'later...'
|
||||
return Task.done
|
||||
|
||||
seq = Task.doLater(3.0, Task.Task(foo), 'fooLater')
|
||||
t = taskMgr.spawnTaskNamed(seq, 'doLater-fooLater')
|
||||
run()
|
||||
|
||||
# tasks with state
|
||||
# Combined with uponDeath
|
||||
|
||||
someValue = 1
|
||||
|
||||
def func(state):
|
||||
if (state.someValue > 10):
|
||||
print 'true!'
|
||||
return Task.done
|
||||
else:
|
||||
state.someValue = state.someValue + 1
|
||||
return Task.cont
|
||||
|
||||
def deathFunc(state):
|
||||
print 'Value at death: ', state.someValue
|
||||
|
||||
task = Task.Task(func)
|
||||
|
||||
# set task state here
|
||||
task.someValue = someValue
|
||||
|
||||
# Use instance variable uponDeath to specify function
|
||||
# to perform on task removal
|
||||
# Default value of uponDeath is None
|
||||
task.uponDeath = deathFunc
|
||||
|
||||
t = taskMgr.spawnTaskNamed(task, 'funcTask')
|
||||
run()
|
||||
"""
|
||||
def __getTimeFrame(self):
|
||||
# WARNING: If you are testing tasks without an igloop,
|
||||
# you must manually tick the clock
|
||||
# Ask for the time last frame
|
||||
return globalClock.getFrameTime(), globalClock.getFrameCount()
|
||||
|
@ -28,7 +28,7 @@ class Timer:
|
||||
self.name = name
|
||||
self.startT = self.clock.getFrameTime()
|
||||
self.currT = 0.0
|
||||
taskMgr.spawnMethodNamed(self.__timerTask, self.name + '-run')
|
||||
taskMgr.add(self.__timerTask, self.name + '-run')
|
||||
self.started = 1
|
||||
|
||||
def startCallback(self, t, callback):
|
||||
@ -40,7 +40,7 @@ class Timer:
|
||||
self.finalT = t
|
||||
self.startT = self.clock.getFrameTime()
|
||||
self.currT = 0.0
|
||||
taskMgr.spawnMethodNamed(self.__timerTask, self.name + '-run')
|
||||
taskMgr.add(self.__timerTask, self.name + '-run')
|
||||
self.started = 1
|
||||
|
||||
def stop(self):
|
||||
@ -48,7 +48,7 @@ class Timer:
|
||||
"""
|
||||
if (not self.started):
|
||||
return 0.0
|
||||
taskMgr.removeTasksNamed(self.name + '-run')
|
||||
taskMgr.remove(self.name + '-run')
|
||||
self.started = 0
|
||||
return self.currT
|
||||
|
||||
|
@ -174,7 +174,7 @@ class AnimPanel(AppShell):
|
||||
self.stopActorControls()
|
||||
self.lastT = globalClock.getFrameTime()
|
||||
self.playList = self.actorControlList[:]
|
||||
taskMgr.spawnMethodNamed(self.play, self.id + '_UpdateTask')
|
||||
taskMgr.add(self.play, self.id + '_UpdateTask')
|
||||
|
||||
def play(self, task):
|
||||
if not self.playList:
|
||||
@ -188,7 +188,7 @@ class AnimPanel(AppShell):
|
||||
return Task.cont
|
||||
|
||||
def stopActorControls(self):
|
||||
taskMgr.removeTasksNamed(self.id + '_UpdateTask')
|
||||
taskMgr.remove(self.id + '_UpdateTask')
|
||||
|
||||
def getActorControlAt(self, index):
|
||||
return self.actorControlList[index]
|
||||
|
@ -655,18 +655,18 @@ class MopathRecorder(AppShell, PandaObject):
|
||||
Hook called upon selection of a node path used to select playback
|
||||
marker if subnode selected
|
||||
"""
|
||||
taskMgr.removeTasksNamed(self.name + '-curveEditTask')
|
||||
taskMgr.remove(self.name + '-curveEditTask')
|
||||
if nodePath.id() == self.playbackMarker.getChild(0).id():
|
||||
direct.select(self.playbackMarker)
|
||||
elif nodePath.id() == self.tangentMarker.getChild(0).id():
|
||||
direct.select(self.tangentMarker)
|
||||
elif nodePath.id() == self.playbackMarker.id():
|
||||
self.tangentGroup.show()
|
||||
taskMgr.spawnMethodNamed(self.curveEditTask,
|
||||
taskMgr.add(self.curveEditTask,
|
||||
self.name + '-curveEditTask')
|
||||
elif nodePath.id() == self.tangentMarker.id():
|
||||
self.tangentGroup.show()
|
||||
taskMgr.spawnMethodNamed(self.curveEditTask,
|
||||
taskMgr.add(self.curveEditTask,
|
||||
self.name + '-curveEditTask')
|
||||
else:
|
||||
self.tangentGroup.hide()
|
||||
@ -755,9 +755,9 @@ class MopathRecorder(AppShell, PandaObject):
|
||||
direct.deselect(self.playbackMarker)
|
||||
direct.deselect(self.tangentMarker)
|
||||
# Remove tasks
|
||||
taskMgr.removeTasksNamed(self.name + '-recordTask')
|
||||
taskMgr.removeTasksNamed(self.name + '-playbackTask')
|
||||
taskMgr.removeTasksNamed(self.name + '-curveEditTask')
|
||||
taskMgr.remove(self.name + '-recordTask')
|
||||
taskMgr.remove(self.name + '-playbackTask')
|
||||
taskMgr.remove(self.name + '-curveEditTask')
|
||||
|
||||
def createNewPointSet(self):
|
||||
self.pointSetName = self.name + '-ps-' + `self.pointSetCount`
|
||||
@ -924,8 +924,8 @@ class MopathRecorder(AppShell, PandaObject):
|
||||
def toggleRecord(self):
|
||||
if self.getVariable('Recording', 'Record').get():
|
||||
# Kill old tasks
|
||||
taskMgr.removeTasksNamed(self.name + '-recordTask')
|
||||
taskMgr.removeTasksNamed(self.name + '-curveEditTask')
|
||||
taskMgr.remove(self.name + '-recordTask')
|
||||
taskMgr.remove(self.name + '-curveEditTask')
|
||||
# Remove old curve
|
||||
self.nurbsCurveDrawer.hide()
|
||||
# Reset curve fitters
|
||||
@ -966,13 +966,13 @@ class MopathRecorder(AppShell, PandaObject):
|
||||
# start flying nodePath along path
|
||||
self.startPlayback()
|
||||
# Start new task
|
||||
t = taskMgr.spawnMethodNamed(
|
||||
t = taskMgr.add(
|
||||
self.recordTask, self.name + '-recordTask')
|
||||
t.startTime = globalClock.getFrameTime()
|
||||
else:
|
||||
if self.samplingMode == 'Continuous':
|
||||
# Kill old task
|
||||
taskMgr.removeTasksNamed(self.name + '-recordTask')
|
||||
taskMgr.remove(self.name + '-recordTask')
|
||||
if ((self.recordingType.get() == 'Refine') or
|
||||
(self.recordingType.get() == 'Extend')):
|
||||
# Reparent node path back to parent
|
||||
@ -1263,7 +1263,7 @@ class MopathRecorder(AppShell, PandaObject):
|
||||
# Make sure checkbutton is set
|
||||
self.getVariable('Playback', 'Play').set(1)
|
||||
# Start new playback task
|
||||
t = taskMgr.spawnMethodNamed(
|
||||
t = taskMgr.add(
|
||||
self.playbackTask, self.name + '-playbackTask')
|
||||
t.currentTime = self.playbackTime
|
||||
t.lastTime = globalClock.getFrameTime()
|
||||
@ -1314,7 +1314,7 @@ class MopathRecorder(AppShell, PandaObject):
|
||||
|
||||
def stopPlayback(self):
|
||||
self.getVariable('Playback', 'Play').set(0)
|
||||
taskMgr.removeTasksNamed(self.name + '-playbackTask')
|
||||
taskMgr.remove(self.name + '-playbackTask')
|
||||
|
||||
def jumpToStartOfPlayback(self):
|
||||
self.stopPlayback()
|
||||
|
@ -598,7 +598,7 @@ class Placer(AppShell):
|
||||
self.pushUndo()
|
||||
# If moving widget kill follow task and update wrts
|
||||
if self.nodePathMenu.get() == 'widget':
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
taskMgr.remove('followSelectedNodePath')
|
||||
# Record relationship between selected nodes and widget
|
||||
direct.selected.getWrtAll()
|
||||
# Record initial state
|
||||
|
@ -185,7 +185,7 @@ class TaskManagerWidget(PandaObject):
|
||||
parent = self.parent,
|
||||
default = 'cancel')
|
||||
if ok:
|
||||
self.taskMgr.removeTask(self.currentTask)
|
||||
self.taskMgr.remove(self.currentTask)
|
||||
self.updateTaskListBox()
|
||||
|
||||
def removeMatchingTasks(self):
|
||||
@ -201,7 +201,7 @@ class TaskManagerWidget(PandaObject):
|
||||
parent = self.parent,
|
||||
default = 'cancel')
|
||||
if ok:
|
||||
self.taskMgr.removeTasksNamed(name)
|
||||
self.taskMgr.remove(name)
|
||||
self.updateTaskListBox()
|
||||
|
||||
def onDestroy(self):
|
||||
|
@ -606,7 +606,7 @@ class DialWidget(Pmw.MegaWidget):
|
||||
def knobMouseDown(self,event):
|
||||
self._onButtonPress()
|
||||
self.knobSF = 0.0
|
||||
t = taskMgr.spawnMethodNamed(self.knobComputeVelocity, 'cv')
|
||||
t = taskMgr.add(self.knobComputeVelocity, 'cv')
|
||||
t.lastTime = globalClock.getFrameTime()
|
||||
|
||||
def knobComputeVelocity(self, state):
|
||||
@ -633,7 +633,7 @@ class DialWidget(Pmw.MegaWidget):
|
||||
return -sf
|
||||
|
||||
def knobMouseUp(self, event):
|
||||
taskMgr.removeTasksNamed('cv')
|
||||
taskMgr.remove('cv')
|
||||
self.knobSF = 0.0
|
||||
self._onButtonRelease()
|
||||
|
||||
|
@ -128,7 +128,7 @@ class Floater(Pmw.MegaWidget):
|
||||
def _startFloaterTask(self,event):
|
||||
self._fFloaterTask = 1
|
||||
apply(self.onPress,self['callbackData'])
|
||||
taskMgr.spawnMethodNamed(self._floaterTask, 'floaterTask')
|
||||
taskMgr.add(self._floaterTask, 'floaterTask')
|
||||
|
||||
def _floaterTask(self, state):
|
||||
if self.velocity != 0.0:
|
||||
@ -136,7 +136,7 @@ class Floater(Pmw.MegaWidget):
|
||||
return Task.cont
|
||||
|
||||
def _floaterReset(self, event):
|
||||
taskMgr.removeTasksNamed('floaterTask')
|
||||
taskMgr.remove('floaterTask')
|
||||
self.velocity = 0.0
|
||||
self.scale.set(0.0)
|
||||
apply(self.onRelease, self['callbackData'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user