[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