|
|
@@ -84,6 +84,33 @@ class MantisTree(NodeTree):
|
|
|
except Exception as e:
|
|
|
print("Node \"%s\" failed to update display with error: %s" %(wrapGreen(node.name), wrapRed(e)))
|
|
|
# raise e
|
|
|
+ # from .utilities import all_trees_in_tree
|
|
|
+ # all_my_trees = all_trees_in_tree(self,)
|
|
|
+ # for tree in all_my_trees:
|
|
|
+ # I think using the current visible tree is actually fine
|
|
|
+ if True:
|
|
|
+ # HACK
|
|
|
+ for l in current_tree.links:
|
|
|
+ l.is_valid = True # I don't want Blender marking these for me. No warning is better than a wrong warning.
|
|
|
+ # end HACK
|
|
|
+
|
|
|
+ # in the future, fix it properly. Here is a start.
|
|
|
+ else: # this is harder to fix than I thought!
|
|
|
+ tree_path_names=[None,]
|
|
|
+ for i, path_item in enumerate(bpy.context.space_data.path[:-1]):
|
|
|
+ tree_path_names.append(path_item.node_tree.nodes.active.name)
|
|
|
+ for l in current_tree.links: # We need to loop through actual links so we can filter them
|
|
|
+ if l.is_valid == False:
|
|
|
+ if nc_from := self.parsed_tree.get( (*tree_path_names, l.from_node.name)) is None:
|
|
|
+ continue
|
|
|
+ for o in nc_from.outputs.values():
|
|
|
+ for mlink in o.links:
|
|
|
+ if (mlink.to_socket == l.to_socket.name) and (mlink.to_node.signature[-1] == l.to_node.name):
|
|
|
+ l.is_valid = not mlink.is_hierarchy
|
|
|
+ # in reality, we need to trace the link UP and find a cycle - then find a link in the cycle that is non-hierarchy
|
|
|
+ # the actual link that BLENDER marks as invalid may be a hierarchy link.
|
|
|
+ # let's see if this works
|
|
|
+
|
|
|
|
|
|
|
|
|
def execute_tree(self,context):
|
|
|
@@ -695,7 +722,7 @@ replace_types = ["NodeGroupInput", "NodeGroupOutput", "SchemaIncomingConnection"
|
|
|
# in schema generation and this is the easiest way to do it for now.
|
|
|
custom_props_types = ["LinkArmature", "UtilityKeyframe", "UtilityFCurve", "UtilityDriver", "xFormBone"]
|
|
|
|
|
|
-from_name_filter = ["Driver", ]
|
|
|
+from_name_filter = ["Driver",]
|
|
|
to_name_filter = [
|
|
|
"Custom Object xForm Override",
|
|
|
"Custom Object",
|