Ver código fonte

fix: autogen nodes cause graph solve to fail

Joseph Brandenburg 6 meses atrás
pai
commit
89a7c9243e
2 arquivos alterados com 5 adições e 2 exclusões
  1. 3 2
      readtree.py
  2. 2 0
      schema_solve.py

+ 3 - 2
readtree.py

@@ -120,6 +120,7 @@ def make_connections_to_ng_dummy(base_tree, tree_path_names, local_nc, all_nc, n
                 # 
                 local_nc[sig] = nc_from; all_nc[sig] = nc_from
                 from_s = inp.name
+                nc_from.execution_prepared=True
             else:
                 prRed("No available auto-generated class for input", *tree_path_names, np.name, inp.name)
             nc_from.outputs[from_s].connect(node=nc_to, socket=to_s, sort_id=0)
@@ -476,12 +477,12 @@ def execute_tree(nodes, base_tree, context, error_popups = False):
             mContext = nc.mContext
         nc.reset_execution()
         check_and_add_root(nc, xForm_pass)
-
+    
     executed = []
 
     # check for cycles here by keeping track of the number of times a node has been visited.
     visited={}
-    check_max_len=len(nodes)**2 # seems too high but safe. In a well-ordered graph, I guess this number should be less than the number of nodes.
+    check_max_len=18#len(nodes)**2 # seems too high but safe. In a well-ordered graph, I guess this number should be less than the number of nodes.
     max_iterations = len(nodes)**2
     i = 0
     switch_me = [] # switch the mode on these objects

+ 2 - 0
schema_solve.py

@@ -215,6 +215,7 @@ class SchemaSolver:
                 nc_from.outputs = {ui_link.from_socket.name:NodeSocket(name = ui_link.from_socket.name, node=nc_from)}
                 nc_from.parameters = {ui_link.from_socket.name:index}
                 frame_mantis_nodes[sig]=nc_from
+                nc_from.execution_prepared=True
                 from_node = nc_from
                 self.solved_nodes[sig]=from_node
                 _connection = from_node.outputs[ui_link.from_socket.name].connect(node=to_node, socket=ui_link.to_socket.identifier)
@@ -366,6 +367,7 @@ class SchemaSolver:
                 if (nc_cls): #HACK
                     sig = ("MANTIS_AUTOGENERATED", *self.tree_path_names[1:-1], self.index_str(), ui_link.from_socket.name, ui_link.from_socket.identifier)
                     nc_from = nc_cls(sig, self.node.base_tree)
+                    nc_from.execution_prepared=True
                     # ugly! maybe even a HACK!
                     nc_from.inputs = {}
                     from .node_container_common import NodeSocket