From e0db2bd3c3730fd053ffddfd8ce870de17bc344f Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 May 2020 15:25:47 -0400 Subject: [PATCH] Allow MSBs to trigger responders and sitting mods. --- korman/nodes/node_avatar.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/korman/nodes/node_avatar.py b/korman/nodes/node_avatar.py index 25d7184..2c5d431 100644 --- a/korman/nodes/node_avatar.py +++ b/korman/nodes/node_avatar.py @@ -303,6 +303,11 @@ class PlasmaMultiStageBehaviorNode(PlasmaNodeBase, bpy.types.Node): "link_limit": 1, "spawn_empty": True, }), + ("condition", { + "text": "Triggered By", + "type": "PlasmaConditionSocket", + "spawn_empty": True, + }), ]) output_sockets = OrderedDict([ @@ -311,6 +316,10 @@ class PlasmaMultiStageBehaviorNode(PlasmaNodeBase, bpy.types.Node): "type": "PlasmaBehaviorSocket", "valid_link_nodes": {"PlasmaPythonFileNode"}, "spawn_empty": True, + }), + ("satisfies", { + "text": "Trigger", + "type": "PlasmaConditionSocket", }) ]) @@ -382,6 +391,14 @@ class PlasmaMultiStageBehaviorNode(PlasmaNodeBase, bpy.types.Node): msbmod.addStage(animstage) + receivers = ((i, i.get_key(exporter, so)) for i in self.find_outputs("satisfies")) + for node, key in receivers: + if key is not None: + msbmod.addReceiver(key) + else: + exporter.report.warn("'{}' Node '{}' doesn't expose a key. It won't be triggered by '{}'!", + node.bl_idname, node.name, self.name, indent=3) + @property def requires_actor(self): return not self.find_input_socket("seek_target").is_linked