mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
fix copyActor when subparts are in use
This commit is contained in:
parent
d7892c5bb2
commit
d6049a6276
@ -237,7 +237,9 @@ class Actor(DirectObject, NodePath):
|
|||||||
|
|
||||||
# copy the part dictionary from other
|
# copy the part dictionary from other
|
||||||
self.__copyPartBundles(other)
|
self.__copyPartBundles(other)
|
||||||
self.__subpartDict = copy_module.deepcopy(other.__subpartDict)
|
self.__copySubpartDict(other)
|
||||||
|
|
||||||
|
self.__subpartsComplete = other.__subpartsComplete
|
||||||
|
|
||||||
# copy the anim dictionary from other
|
# copy the anim dictionary from other
|
||||||
self.__copyAnimControls(other)
|
self.__copyAnimControls(other)
|
||||||
@ -1690,6 +1692,19 @@ class Actor(DirectObject, NodePath):
|
|||||||
Actor.notify.error("lod: %s has no matching part: %s" %
|
Actor.notify.error("lod: %s has no matching part: %s" %
|
||||||
(lodName, partName))
|
(lodName, partName))
|
||||||
|
|
||||||
|
def __copySubpartDict(self, other):
|
||||||
|
"""Copies the subpartDict from another as this instance's own.
|
||||||
|
This makes a deep copy of the map and all of the names and
|
||||||
|
PartSubset objects within it. We can't use copy.deepcopy()
|
||||||
|
because of the included C++ PartSubset objects."""
|
||||||
|
|
||||||
|
self.__subpartDict = {}
|
||||||
|
for partName, subpartDef in other.__subpartDict.items():
|
||||||
|
subpartDefCopy = subpartDef
|
||||||
|
if subpartDef:
|
||||||
|
truePartName, subset = subpartDef
|
||||||
|
subpartDefCopy = (truePartName, PartSubset(subset))
|
||||||
|
self.__subpartDict[partName] = subpartDef
|
||||||
|
|
||||||
def __copyAnimControls(self, other):
|
def __copyAnimControls(self, other):
|
||||||
"""__copyAnimControls(self, Actor)
|
"""__copyAnimControls(self, Actor)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user