Browse Source

more fixes to the fixes

David Rose 19 years ago
parent
commit
b07734d1d4
1 changed files with 18 additions and 14 deletions
  1. 18 14
      direct/src/actor/Actor.py

+ 18 - 14
direct/src/actor/Actor.py

@@ -378,8 +378,10 @@ class Actor(DirectObject, NodePath):
             partDict = self.__animControlDict[lodName]
             partInfo = []
             for partName in partDict.keys():
-                truePartName = self.__subpartDict.get(partName, [partName])[0]
-                partBundle = self.__partBundleDict[lodName][truePartName].partBundle
+                subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+
+                partDef = partBundleDict.get(subpartDef.truePartName)
+                partBundle = partDef.partBundle
                 animDict = partDict[partName]
                 animInfo = []
                 for animName in animDict.keys():
@@ -869,8 +871,9 @@ class Actor(DirectObject, NodePath):
             Actor.notify.warning("no lod named: %s" % (lodName))
             return None
 
-        truePartName = self.__subpartDict.get(partName, [partName])[0]
-        partDef = partBundleDict.get(truePartName)
+        subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+
+        partDef = partBundleDict.get(subpartDef.truePartName)
         if partDef:
             bundle = partDef.partBundle.node().getBundle()
         else:
@@ -903,8 +906,9 @@ class Actor(DirectObject, NodePath):
             Actor.notify.warning("no lod named: %s" % (lodName))
             return None
 
-        truePartName = self.__subpartDict.get(partName, [partName])[0]
-        partDef = partBundleDict.get(truePartName)
+        subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+
+        partDef = partBundleDict.get(subpartDef.truePartName)
         if partDef:
             bundle = partDef.partBundle.node().getBundle()
         else:
@@ -937,8 +941,8 @@ class Actor(DirectObject, NodePath):
             Actor.notify.warning("no lod named: %s" % (lodName))
             return None
 
-        truePartName = self.__subpartDict.get(partName, [partName])[0]
-        partDef = partBundleDict.get(truePartName)
+        subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+        partDef = partBundleDict.get(subpartDef.truePartName)
         if partDef:
             bundle = partDef.partBundle.node().getBundle()
         else:
@@ -970,8 +974,8 @@ class Actor(DirectObject, NodePath):
         Instance a nodePath to an actor part at a joint called jointName"""
         partBundleDict = self.__partBundleDict.get(lodName)
         if partBundleDict:
-            truePartName = self.__subpartDict.get(partName, [partName])[0]
-            partDef = partBundleDict.get(truePartName)
+            subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+            partDef = partBundleDict.get(subpartDef.truePartName)
             if partDef:
                 joint = partDef.partBundle.find("**/" + jointName)
                 if (joint.isEmpty()):
@@ -988,8 +992,8 @@ class Actor(DirectObject, NodePath):
         Attach one actor part to another at a joint called jointName"""
         partBundleDict = self.__partBundleDict.get(lodName)
         if partBundleDict:
-            truePartName = self.__subpartDict.get(partName, [partName])[0]
-            partDef = partBundleDict.get(truePartName)
+            subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+            partDef = partBundleDict.get(subpartDef.truePartName)
             if partDef:
                 anotherPartDef = partBundleDict.get(anotherPartName)
                 if anotherPartDef:
@@ -1255,8 +1259,8 @@ class Actor(DirectObject, NodePath):
                     bundles.append(partDef.partBundle.node().getBundle())
 
             else:
-                truePartName = self.__subpartDict.get(partName, [partName])[0]
-                partDef = bundleDict.get(truePartName)
+                subpartDef = self.__subpartDict.get(partName, Actor.SubpartDef(partName))
+                partDef = partBundleDict.get(subpartDef.truePartName)
                 if partDef != None:
                     bundles.append(partDef.partBundle.node().getBundle())
                 else: