Browse Source

task: Fix missing `taskMgr` reference when using managed tasks

rdb 3 years ago
parent
commit
c24a15ed40
1 changed files with 8 additions and 6 deletions
  1. 8 6
      direct/src/showbase/DirectObject.py

+ 8 - 6
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()