|
|
@@ -209,14 +209,15 @@ class SchemaSolver:
|
|
|
unique_name = "".join([
|
|
|
ui_link.to_socket.node.name+self.index_str(),
|
|
|
ui_link.from_socket.name, ui_link.from_socket.identifier,
|
|
|
- "==>", ui_link.to_socket.name, ui_link.to_socket.identifier,])
|
|
|
+ "==>", ui_link.to_socket.name, ui_link.to_socket.identifier,],)
|
|
|
signature = ("MANTIS_AUTOGENERATED", *self.tree_path_names[1:-1], unique_name)
|
|
|
- from_node = frame_mantis_nodes.get(signature)
|
|
|
+ from_node = self.all_nodes.get(signature)
|
|
|
if not from_node:
|
|
|
from_node = autogen_node(self.node.base_tree, ui_link.from_socket,
|
|
|
signature=signature, mContext=self.node.mContext)
|
|
|
from_node.parameters = {ui_link.from_socket.name:index}
|
|
|
frame_mantis_nodes[signature]=from_node; self.solved_nodes[signature]=from_node
|
|
|
+ self.all_nodes[signature]=from_node
|
|
|
_connection = from_node.outputs[ui_link.from_socket.name].connect(node=to_node, socket=ui_link.to_socket.identifier)
|
|
|
return
|
|
|
# Since the index is already determined, it is safe to remove the socket and just keep the value.
|
|
|
@@ -426,14 +427,17 @@ class SchemaSolver:
|
|
|
if isinstance(from_node, SchemaIndex):
|
|
|
signature = ("MANTIS_AUTOGENERATED", *self.tree_path_names[1:-1], self.index_str(),
|
|
|
ui_link.from_socket.name, ui_link.from_socket.identifier)
|
|
|
- from .readtree import autogen_node
|
|
|
- from_node = autogen_node(self.node.base_tree, ui_link.from_socket,
|
|
|
- signature, self.node.mContext)
|
|
|
- if ui_link.from_socket.name in ['Index']:
|
|
|
- from_node.parameters = {ui_link.from_socket.name:index}
|
|
|
- else:
|
|
|
- from_node.parameters = {ui_link.from_socket.name:self.solve_length}
|
|
|
- frame_mantis_nodes[signature]=from_node; self.solved_nodes[signature]=from_node
|
|
|
+ from_node = self.all_nodes.get(signature)
|
|
|
+ if not from_node:
|
|
|
+ from .readtree import autogen_node
|
|
|
+ from_node = autogen_node(self.node.base_tree, ui_link.from_socket,
|
|
|
+ signature, self.node.mContext)
|
|
|
+ if ui_link.from_socket.name in ['Index']:
|
|
|
+ from_node.parameters = {ui_link.from_socket.name:index}
|
|
|
+ else:
|
|
|
+ from_node.parameters = {ui_link.from_socket.name:self.solve_length}
|
|
|
+ frame_mantis_nodes[signature]=from_node; self.solved_nodes[signature]=from_node
|
|
|
+ self.all_nodes[signature]=from_node
|
|
|
elif from_node.node_type == 'DUMMY_SCHEMA':
|
|
|
if isinstance( ui_link.from_socket, NodeSocket): # normal
|
|
|
from_socket_name = ui_link.from_socket.identifier
|