From 6a957200933c56f97050b3ae0e242494c36266fb Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 7 Jul 2023 21:28:53 -0400 Subject: [PATCH] Fix issue with group masters not being exposed to PythonFileMods. The Python File Nodes were always picking up the group owner's `plAGMasterMod` key instead of the group's `plMsgForwarder` key. This is fixed by using the appropriate generic method for fetching an animation's key. --- korman/nodes/node_python.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/korman/nodes/node_python.py b/korman/nodes/node_python.py index 4a25399..265263a 100644 --- a/korman/nodes/node_python.py +++ b/korman/nodes/node_python.py @@ -76,7 +76,8 @@ _attrib_key_types = { "ptAttribDynamicMap": plFactory.ClassIndex("plDynamicTextMap"), "ptAttribGUIDialog": plFactory.ClassIndex("pfGUIDialogMod"), "ptAttribExcludeRegion": plFactory.ClassIndex("plExcludeRegionMod"), - "ptAttribAnimation": plFactory.ClassIndex("plAGMasterMod"), + "ptAttribAnimation": (plFactory.ClassIndex("plAGMasterMod"), + plFactory.ClassIndex("plMsgForwarder")), "ptAttribBehavior": plFactory.ClassIndex("plMultistageBehMod"), "ptAttribMaterial": plFactory.ClassIndex("plLayer"), "ptAttribMaterialList": plFactory.ClassIndex("plLayer"), @@ -763,10 +764,7 @@ class PlasmaAttribObjectNode(idprops.IDPropObjectMixin, PlasmaAttribNodeBase, bp if attrib in {"ptAttribSceneobject", "ptAttribSceneobjectList"}: return ref_so_key elif attrib == "ptAttribAnimation": - anim = bo.plasma_modifiers.animation - agmod = exporter.mgr.find_create_key(plAGModifier, so=ref_so, name=anim.key_name) - agmaster = exporter.mgr.find_create_key(plAGMasterMod, so=ref_so, name=anim.key_name) - return agmaster + return exporter.animation.get_animation_key(bo, ref_so) elif attrib == "ptAttribSwimCurrent": swimregion = bo.plasma_modifiers.swimregion return swimregion.get_key(exporter, ref_so)