44 次代码提交 7251a054fc ... 4ac2bc26ff

作者 SHA1 备注 提交日期
  Joseph Brandenburg 4ac2bc26ff Fix: Spline IK broken 9 月之前
  Joseph Brandenburg 08317304ff Fix: lazy parents broken 9 月之前
  Joseph Brandenburg 2b42688fd6 cleanup xForm get_parent_node 9 月之前
  Joseph Brandenburg ceb2ba967e Fix: Correctly Sort Links to Group Arrays 9 月之前
  Joseph Brandenburg 24ce4568e5 Fix: remove many instances of hardcoded node get 9 月之前
  Joseph Brandenburg f4ea8a2401 clean up useless prints 9 月之前
  Joseph Brandenburg 587aaef964 GroupInterfaceNodes at group in/out 9 月之前
  Brandenburg 3e0322a7f8 WIP: Route Group I/O through interface nodes 9 月之前
  Joseph Brandenburg ad9b7853ac Initialize Tree with correct version number 10 月之前
  Joseph Brandenburg 424013eed2 Fix: make default values work with more socket types 10 月之前
  Joseph Brandenburg 859e92d74a Fix: interface panel doesn't have an identifier 10 月之前
  Joseph Brandenburg 23edc1174c New Feature: Default Values for base tree 10 月之前
  Joseph Brandenburg b0e073dd51 Fix: correct default value type for vectors 10 月之前
  Joseph Brandenburg e6d33d0e9e Fix: default value disabled for Matrix 10 月之前
  Joseph Brandenburg 53f245071d Disable "Connected To" feature 10 月之前
  Joseph Brandenburg 781ead7d69 Implement Custom Interface Classes 10 月之前
  Joseph Brandenburg 085644b047 initial versioning for new interface classes 10 月之前
  Joseph Brandenburg ff7b1ac548 fix: unbound local error when updating group interface 10 月之前
  Joseph Brandenburg eaa31abf8d update interface draw for correct UI and clarity 10 月之前
  Joseph Brandenburg 6bedc7a7c9 Interface Classes set the multi and default value now 10 月之前
  Joseph Brandenburg 2751aa447f Add Custom Interface Socket Types 10 月之前
  Joseph Brandenburg 965c6c48d6 v0.12.28 revert unhelpful broken patch 9 月之前
  Joseph Brandenburg d0d622a238 Revert "Fix: Nested Choose fails when linked to group output" 9 月之前
  Joseph Brandenburg 7251a054fc Fix: Spline IK broken 9 月之前
  Joseph Brandenburg ca5229b5c8 Fix: lazy parents broken 9 月之前
  Joseph Brandenburg 234a1fba6b cleanup xForm get_parent_node 9 月之前
  Joseph Brandenburg 38acf70638 Fix: Correctly Sort Links to Group Arrays 9 月之前
  Joseph Brandenburg ce5f91bdb9 Fix: remove many instances of hardcoded node get 9 月之前
  Joseph Brandenburg 0b6fe5d16a clean up useless prints 9 月之前
  Joseph Brandenburg 3c5578c8f6 GroupInterfaceNodes at group in/out 9 月之前
  Brandenburg 7267ed0429 WIP: Route Group I/O through interface nodes 9 月之前
  Joseph Brandenburg 82bef638e8 Initialize Tree with correct version number 10 月之前
  Joseph Brandenburg 6f7b47a52c Fix: make default values work with more socket types 10 月之前
  Joseph Brandenburg 4ef2f84adb Fix: interface panel doesn't have an identifier 10 月之前
  Joseph Brandenburg 781a3b11db New Feature: Default Values for base tree 10 月之前
  Joseph Brandenburg fc4f0acc53 Fix: correct default value type for vectors 10 月之前
  Joseph Brandenburg ae742144db Fix: default value disabled for Matrix 10 月之前
  Joseph Brandenburg 8473d87d04 Disable "Connected To" feature 10 月之前
  Joseph Brandenburg 8a2b0c8b36 Implement Custom Interface Classes 10 月之前
  Joseph Brandenburg e70192469c initial versioning for new interface classes 10 月之前
  Joseph Brandenburg ebd7b7fd65 fix: unbound local error when updating group interface 10 月之前
  Joseph Brandenburg 161e3b37eb update interface draw for correct UI and clarity 10 月之前
  Joseph Brandenburg b17bde021e Interface Classes set the multi and default value now 10 月之前
  Joseph Brandenburg 252574a681 Add Custom Interface Socket Types 10 月之前
共有 3 个文件被更改,包括 10 次插入16 次删除
  1. 2 1
      .gitignore
  2. 1 1
      blender_manifest.toml
  3. 7 14
      schema_solve.py

+ 2 - 1
.gitignore

@@ -6,4 +6,5 @@ index.json
 mantis.zip
 mantis.*.zip
 widgets/*
-components/*
+components/*
+mantis_beta.zip

+ 1 - 1
blender_manifest.toml

@@ -3,7 +3,7 @@ schema_version = "1.0.0"
 # Example of manifest file for a Blender extension
 # Change the values according to your extension
 id = "mantis"
-version = "0.12.27"
+version = "0.12.28"
 name = "Mantis"
 tagline = "Mantis is a rigging nodes toolkit"
 maintainer = "Nodespaghetti <josephbburg@protonmail.com>"

+ 7 - 14
schema_solve.py

@@ -313,7 +313,7 @@ class SchemaSolver:
         from_node = self.schema_nodes[(*self.node.ui_signature, from_ui_node.bl_idname)]
         from collections import deque
         unprepared = deque(from_node.hierarchy_dependencies)
-        self.prepare_nodes(unprepared, frame_mantis_nodes)
+        self.prepare_nodes(unprepared)
         from .utilities import cap, wrap
         get_index = from_node.evaluate_input("Index", self.index) # get the most recent link
         # getting the link at self.index just saves the trouble of killing the old links
@@ -515,22 +515,15 @@ class SchemaSolver:
                 return False
         return True
 
-    def prepare_nodes(self, unprepared, frame_nodes):
+    def prepare_nodes(self, unprepared):
         # At this point, we've already run a pretty exhaustive preperation phase to prep the schema's dependencies
         # So we should not need to add any new dependencies unless there is a bug elsewhere.
         # and in fact, I could skip this in some cases, and should investigate if profiling reveals a slowdown here.
-        from .misc_nodes import UtilityChoose, UtilityKDChoosePoint, UtilityKDChooseXForm
-        forbidden=set() # forbid some nodes - they aren't necessary to solve the schema & cause problems.
+        forbidden=set()
+        e = None
+        # forbid some nodes - they aren't necessary to solve the schema & cause problems.
         while unprepared:
             nc = unprepared.pop()
-            if isinstance(nc, (UtilityChoose, UtilityKDChoosePoint, UtilityKDChooseXForm)): 
-                can_skip=True                 # NOTE: this bug can also be fixed by adding
-                for output in nc.outputs:     # a no-op node between the choose and the output.
-                    for l in output.links:    # try that instead if this causes problems.
-                        if l.to_node in frame_nodes.values():
-                            can_skip = False; break
-                    if can_skip == False: break # don't keep looking
-                if can_skip: continue # do nothing because its links are not ready.
             if nc.node_type == 'DUMMY_SCHEMA' and not self.test_is_sub_schema(nc):
                 forbidden.add(nc) # do NOT add this as a dependency.
             if nc in forbidden: continue # trying to resolve dependencies for.
@@ -678,7 +671,7 @@ class SchemaSolver:
             if node.node_type == 'DUMMY_SCHEMA' and (schema_len_in := node.inputs.get("Schema Length")):
                 for l in schema_len_in.links:
                     unprepared.append(l.from_node)
-            self.prepare_nodes(unprepared, frame_mantis_nodes)
+            self.prepare_nodes(unprepared)
 
         # We have to prepare the nodes leading to Array Input Get
         for ui_link in array_input_get_link:
@@ -708,7 +701,7 @@ class SchemaSolver:
                 unprepared.extend(from_node.hierarchy_dependencies)
             else:
                 raise RuntimeError(" 671 there has been an error parsing the tree. Please report this as a bug.")
-            self.prepare_nodes(unprepared, frame_mantis_nodes) # prepare only the dependencies we need for this link
+            self.prepare_nodes(unprepared) # prepare only the dependencies we need for this link
             # and handle the output by the specific type
             if isinstance(to_ui_node, (SchemaConstOutput, NodeGroupOutput)):
                 self.handle_link_to_constant_output(frame_mantis_nodes, self.index, ui_link,  to_ui_node)