[Bf-blender-cvs] [5e72329889c] functions: make group defaults work

Jacques Lucke noreply at git.blender.org
Thu Nov 14 16:31:32 CET 2019


Commit: 5e72329889c643e1847d64f0c32a08d5152d3569
Author: Jacques Lucke
Date:   Thu Nov 14 15:39:00 2019 +0100
Branches: functions
https://developer.blender.org/rB5e72329889c643e1847d64f0c32a08d5152d3569

make group defaults work

===================================================================

M	release/scripts/startup/nodes/base.py
M	release/scripts/startup/nodes/function_nodes/groups.py
M	release/scripts/startup/nodes/node_builder.py

===================================================================

diff --git a/release/scripts/startup/nodes/base.py b/release/scripts/startup/nodes/base.py
index bcccb0d606f..d77faeaa9d5 100644
--- a/release/scripts/startup/nodes/base.py
+++ b/release/scripts/startup/nodes/base.py
@@ -64,7 +64,6 @@ class BaseNode:
             builder = self.get_node_builder()
             builder.initialize_decls()
             builder.build()
-            builder.init_defaults()
 
     @classmethod
     def get_search_terms(cls):
diff --git a/release/scripts/startup/nodes/function_nodes/groups.py b/release/scripts/startup/nodes/function_nodes/groups.py
index c55c856842c..f0f3c1e3798 100644
--- a/release/scripts/startup/nodes/function_nodes/groups.py
+++ b/release/scripts/startup/nodes/function_nodes/groups.py
@@ -31,6 +31,10 @@ class GroupDataInputNode(bpy.types.Node, GroupInputNode):
 
     def draw(self, layout):
         layout.prop(self, "input_name", text="")
+
+        if hasattr(self.outputs[0], "draw_property"):
+            self.outputs[0].draw_property(layout, self, "Default")
+
         self.invoke_type_selection(layout, "set_type", "Select Type")
 
     def set_type(self, data_type):
@@ -77,7 +81,8 @@ class GroupNode(bpy.types.Node, FunctionNode):
             builder.fixed_input(
                 input_node.identifier,
                 input_node.input_name,
-                input_node.data_type)
+                input_node.data_type,
+                default=input_node.outputs[0].get_state())
 
         for output_node in self.node_group.get_output_nodes():
             builder.fixed_output(
diff --git a/release/scripts/startup/nodes/node_builder.py b/release/scripts/startup/nodes/node_builder.py
index 8db01d322e7..31933ee9681 100644
--- a/release/scripts/startup/nodes/node_builder.py
+++ b/release/scripts/startup/nodes/node_builder.py
@@ -41,19 +41,17 @@ class NodeBuilder:
             for decl in self.input_declarations:
                 sockets = decl.build(self.node.inputs)
                 assert len(sockets) == decl.amount()
+                decl.init_default(sockets)
 
             for decl in self.output_declarations:
                 sockets = decl.build(self.node.outputs)
                 assert len(sockets) == decl.amount()
+                decl.init_default(sockets)
 
             if self._background_color is not None:
                 self.node.use_custom_color = True
                 self.node.color = self._background_color
 
-    def init_defaults(self):
-        for decl, sockets in self.get_sockets_decl_map().iter_decl_with_sockets():
-            decl.init_default(sockets)
-
     def get_sockets_decl_map(self):
         return SocketDeclMap(
             self.node,



More information about the Bf-blender-cvs mailing list