[Bf-blender-cvs] [c7447b51bdd] functions: Pack List nodes have two inputs by default

Jacques Lucke noreply at git.blender.org
Mon Apr 1 10:33:20 CEST 2019


Commit: c7447b51bddc0f7e88496f64cee133ee7dd6496a
Author: Jacques Lucke
Date:   Mon Apr 1 10:27:50 2019 +0200
Branches: functions
https://developer.blender.org/rBc7447b51bddc0f7e88496f64cee133ee7dd6496a

Pack List nodes have two inputs by default

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

M	release/scripts/startup/function_nodes/base.py
M	release/scripts/startup/function_nodes/declaration/base.py
M	release/scripts/startup/function_nodes/declaration/pack_list.py
M	release/scripts/startup/function_nodes/socket_builder.py

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

diff --git a/release/scripts/startup/function_nodes/base.py b/release/scripts/startup/function_nodes/base.py
index b8402efa239..40eead97892 100644
--- a/release/scripts/startup/function_nodes/base.py
+++ b/release/scripts/startup/function_nodes/base.py
@@ -49,6 +49,7 @@ class BaseNode:
         from . update import managed_update
         with managed_update():
             builder = self.get_socket_builder()
+            builder.initialize_decls()
             builder.build()
 
     @classmethod
diff --git a/release/scripts/startup/function_nodes/declaration/base.py b/release/scripts/startup/function_nodes/declaration/base.py
index ecf844f9809..25e28dc35a5 100644
--- a/release/scripts/startup/function_nodes/declaration/base.py
+++ b/release/scripts/startup/function_nodes/declaration/base.py
@@ -1,4 +1,7 @@
 class SocketDeclBase:
+    def init(self):
+        pass
+
     def build(self, node_sockets):
         raise NotImplementedError()
 
diff --git a/release/scripts/startup/function_nodes/declaration/pack_list.py b/release/scripts/startup/function_nodes/declaration/pack_list.py
index b0a0e5ba27d..2a358308a27 100644
--- a/release/scripts/startup/function_nodes/declaration/pack_list.py
+++ b/release/scripts/startup/function_nodes/declaration/pack_list.py
@@ -7,12 +7,20 @@ from .. types import type_infos
 from .. sockets import OperatorSocket
 
 class PackListDecl(SocketDeclBase):
-    def __init__(self, node, identifier: str, prop_name: str, base_type: str):
+    def __init__(self, node, identifier: str, prop_name: str, base_type: str, default_amount: int):
         self.node = node
         self.identifier_suffix = identifier
         self.prop_name = prop_name
         self.base_type = base_type
         self.list_type = type_infos.to_list(base_type)
+        self.default_amount = default_amount
+
+    def init(self):
+        collection = self.get_collection()
+        for _ in range(self.default_amount):
+            item = collection.add()
+            item.state = "BASE"
+            item.identifier_prefix = str(uuid.uuid4())
 
     def build(self, node_sockets):
         return list(self._build(node_sockets))
diff --git a/release/scripts/startup/function_nodes/socket_builder.py b/release/scripts/startup/function_nodes/socket_builder.py
index b6af62a8256..9efef43c17e 100644
--- a/release/scripts/startup/function_nodes/socket_builder.py
+++ b/release/scripts/startup/function_nodes/socket_builder.py
@@ -18,6 +18,13 @@ class SocketBuilder:
     def _add_output(self, decl):
         self.output_declarations.append(decl)
 
+    def initialize_decls(self):
+        for decl in self.input_declarations:
+            decl.init()
+
+        for decl in self.output_declarations:
+            decl.init()
+
     def build(self):
         self.node.inputs.clear()
         self.node.outputs.clear()
@@ -56,8 +63,8 @@ class SocketBuilder:
     def PackListProperty():
         return PackListDecl.Property()
 
-    def pack_list_input(self, identifier, prop_name, base_type):
-        decl = PackListDecl(self.node, identifier, prop_name, base_type)
+    def pack_list_input(self, identifier, prop_name, base_type, default_amount=2):
+        decl = PackListDecl(self.node, identifier, prop_name, base_type, default_amount)
         self._add_input(decl)



More information about the Bf-blender-cvs mailing list