Browse Source

fix update() some more

David Rose 19 years ago
parent
commit
668610700d
1 changed files with 16 additions and 9 deletions
  1. 16 9
      direct/src/actor/Actor.py

+ 16 - 9
direct/src/actor/Actor.py

@@ -649,8 +649,7 @@ class Actor(DirectObject, NodePath):
         if center != None:
         if center != None:
             self.__LODNode.node().setCenter(center)
             self.__LODNode.node().setCenter(center)
 
 
-    def update(self, lod=0, animName=None, partName='modelRoot',
-               lodName=None, force=False):
+    def update(self, lod=0, partName=None, lodName=None, force=False):
         """ Updates all of the Actor's joints in the indicated LOD.
         """ Updates all of the Actor's joints in the indicated LOD.
         The LOD may be specified by name, or by number, where 0 is the
         The LOD may be specified by name, or by number, where 0 is the
         highest level of detail, 1 is the next highest, and so on.
         highest level of detail, 1 is the next highest, and so on.
@@ -667,14 +666,22 @@ class Actor(DirectObject, NodePath):
             lodNames = [lodName]
             lodNames = [lodName]
 
 
         anyChanged = False
         anyChanged = False
-        if (lod < len(lodNames)):
-            partBundle = self.getPartBundle(partName, lodNames[lod])
-            if force:
-                if partBundle.forceUpdate():
-                    anyChanged = True
+        if lod < len(lodNames):
+            lodName = lodNames[lod]
+            if partName == None:
+                partBundleDict = self.__partBundleDict[lodName]
+                partNames = partBundleDict.keys()
             else:
             else:
-                if partBundle.update():
-                    anyChanged = True
+                partNames = [partName]
+
+            for partName in partNames:
+                partBundle = self.getPartBundle(partName, lodNames[lod])
+                if force:
+                    if partBundle.forceUpdate():
+                        anyChanged = True
+                else:
+                    if partBundle.update():
+                        anyChanged = True
         else:
         else:
             self.notify.warning('update() - no lod: %d' % lod)
             self.notify.warning('update() - no lod: %d' % lod)