Merge node: add update routine
This commit is contained in:
parent
494e2336ac
commit
11da953407
|
@ -24,7 +24,7 @@ class MergeNode(ArmLogicTreeNode):
|
|||
bl_idname = 'LNMergeNode'
|
||||
bl_label = 'Merge'
|
||||
arm_section = 'flow'
|
||||
arm_version = 1
|
||||
arm_version = 2
|
||||
|
||||
def update_exec_mode(self, context):
|
||||
self.outputs['Active Input Index'].hide = self.property0 == 'once_per_frame'
|
||||
|
@ -65,3 +65,24 @@ class MergeNode(ArmLogicTreeNode):
|
|||
return self.bl_label
|
||||
|
||||
return f'{self.bl_label}: [{len(self.inputs)}]'
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.arm_version not in (0, 1):
|
||||
raise LookupError()
|
||||
|
||||
newnode = node_tree.nodes.new('LNMergeNode')
|
||||
newnode.property0 = self.property0
|
||||
|
||||
# Recreate all original inputs
|
||||
array_nodes[str(id(newnode))] = newnode
|
||||
for idx, input in enumerate(self.inputs):
|
||||
bpy.ops.arm.node_add_input('EXEC_DEFAULT', node_index=str(id(newnode)), socket_type='ArmNodeSocketAction')
|
||||
|
||||
for link in input.links:
|
||||
node_tree.links.new(link.from_socket, newnode.inputs[idx])
|
||||
|
||||
# Recreate outputs
|
||||
for link in self.outputs[0].links:
|
||||
node_tree.links.new(newnode.outputs[0], link.to_socket)
|
||||
|
||||
return newnode
|
||||
|
|
Loading…
Reference in a new issue