From c24a15ed408287a0eafa036d6252aa207049f882 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 29 Jun 2022 15:12:06 +0200 Subject: [PATCH] task: Fix missing `taskMgr` reference when using managed tasks --- direct/src/showbase/DirectObject.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/direct/src/showbase/DirectObject.py b/direct/src/showbase/DirectObject.py index 0833b1890a..261fc3049c 100644 --- a/direct/src/showbase/DirectObject.py +++ b/direct/src/showbase/DirectObject.py @@ -44,16 +44,18 @@ class DirectObject: #This function must be used if you want a managed task def addTask(self, *args, **kwargs): - if(not hasattr(self,"_taskList")): + from direct.task.TaskManagerGlobal import taskMgr + if not hasattr(self, "_taskList"): self._taskList = {} - kwargs['owner']=self + kwargs['owner'] = self task = taskMgr.add(*args, **kwargs) return task def doMethodLater(self, *args, **kwargs): - if(not hasattr(self,"_taskList")): - self._taskList ={} - kwargs['owner']=self + from direct.task.TaskManagerGlobal import taskMgr + if not hasattr(self, "_taskList"): + self._taskList = {} + kwargs['owner'] = self task = taskMgr.doMethodLater(*args, **kwargs) return task @@ -69,7 +71,7 @@ class DirectObject: taskOrName.remove() def removeAllTasks(self): - if hasattr(self,'_taskList'): + if hasattr(self, '_taskList'): for task in list(self._taskList.values()): task.remove()