[Bf-blender-cvs] [ac7107df7cc] functions: better socket name accessor function
Jacques Lucke
noreply at git.blender.org
Wed Apr 3 11:56:21 CEST 2019
Commit: ac7107df7ccfa394ff008283bd38d1d2e386e9ad
Author: Jacques Lucke
Date: Wed Apr 3 10:25:11 2019 +0200
Branches: functions
https://developer.blender.org/rBac7107df7ccfa394ff008283bd38d1d2e386e9ad
better socket name accessor function
===================================================================
M release/scripts/startup/function_nodes/base.py
M release/scripts/startup/function_nodes/declaration/base.py
M release/scripts/startup/function_nodes/declaration/variadic.py
M release/scripts/startup/function_nodes/function_tree.py
===================================================================
diff --git a/release/scripts/startup/function_nodes/base.py b/release/scripts/startup/function_nodes/base.py
index 739ee334122..011a9d2321f 100644
--- a/release/scripts/startup/function_nodes/base.py
+++ b/release/scripts/startup/function_nodes/base.py
@@ -154,12 +154,6 @@ class BaseNode:
props.function_name = function_name
props.settings_repr = repr(settings)
- def draw_socket(self, socket, layout):
- decl_map = self.decl_map
- decl = decl_map.get_decl_by_socket(socket)
- index = decl_map.get_socket_index_in_decl(socket)
- decl.draw_socket(layout, socket, index)
-
@classmethod
def iter_final_subclasses(cls):
yield from filter(lambda x: issubclass(x, bpy.types.Node), iter_subclasses_recursive(cls))
@@ -210,7 +204,8 @@ class BaseSocket:
return self.color
def draw(self, context, layout, node, text):
- node.draw_socket(self, layout)
+ decl, index = self.get_decl_with_index(node)
+ decl.draw_socket(layout, self, index)
def draw_self(self, layout, node, text):
layout.label(text=text)
@@ -221,12 +216,22 @@ class BaseSocket:
else:
return tuple(node.inputs).index(self)
+ def get_name(self, node):
+ decl, index = self.get_decl_with_index(node)
+ return decl.get_socket_name(self, index)
+
def to_id(self, node):
return (node, self.is_output, self.identifier)
def get_decl(self, node):
return node.decl_map.get_decl_by_socket(self)
+ def get_decl_with_index(self, node):
+ decl_map = node.decl_map
+ decl = decl_map.get_decl_by_socket(self)
+ index = decl_map.get_socket_index_in_decl(self)
+ return decl, index
+
class FunctionNode(BaseNode):
pass
diff --git a/release/scripts/startup/function_nodes/declaration/base.py b/release/scripts/startup/function_nodes/declaration/base.py
index 7af4156b589..807517b4d0f 100644
--- a/release/scripts/startup/function_nodes/declaration/base.py
+++ b/release/scripts/startup/function_nodes/declaration/base.py
@@ -18,4 +18,7 @@ class SocketDeclBase:
socket.draw_self(layout, self, socket.name)
def operator_socket_call(self, own_socket, other_socket):
- pass
\ No newline at end of file
+ pass
+
+ def get_socket_name(self, socket, index):
+ return socket.name
\ No newline at end of file
diff --git a/release/scripts/startup/function_nodes/declaration/variadic.py b/release/scripts/startup/function_nodes/declaration/variadic.py
index 3777be7ab9a..b3d511081d4 100644
--- a/release/scripts/startup/function_nodes/declaration/variadic.py
+++ b/release/scripts/startup/function_nodes/declaration/variadic.py
@@ -64,10 +64,11 @@ class AnyVariadicDecl(SocketDeclBase):
connected_socket = next(iter(connected_sockets))
connected_type = next(iter(connected_types))
+ connected_node = connected_socket.node
is_output = own_socket.is_output
- item = self.add_item(connected_type, connected_socket.name)
+ item = self.add_item(connected_type, connected_socket.get_name(connected_node))
self.node.rebuild_and_try_keep_state()
identifier = item.identifier_prefix + self.identifier_suffix
@@ -82,6 +83,13 @@ class AnyVariadicDecl(SocketDeclBase):
item.identifier_prefix = str(uuid.uuid4())
return item
+ def get_socket_name(self, socket, index):
+ collection = self.get_collection()
+ if index < len(collection):
+ return collection[index].display_name
+ else:
+ return socket.name
+
@classmethod
def Property(cls):
return CollectionProperty(type=DataTypeGroup)
diff --git a/release/scripts/startup/function_nodes/function_tree.py b/release/scripts/startup/function_nodes/function_tree.py
index 9083887eda2..ebfb565daa4 100644
--- a/release/scripts/startup/function_nodes/function_tree.py
+++ b/release/scripts/startup/function_nodes/function_tree.py
@@ -30,7 +30,7 @@ class FunctionTree(bpy.types.NodeTree, BaseTree):
for socket in node.outputs[:-1]:
yield FunctionInput(
socket.data_type,
- "hello",
+ socket.get_name(node),
socket.identifier)
def iter_function_outputs(self):
@@ -41,7 +41,7 @@ class FunctionTree(bpy.types.NodeTree, BaseTree):
for socket in node.inputs[:-1]:
yield FunctionOutput(
socket.data_type,
- "bye",
+ socket.get_name(node),
socket.identifier)
def get_input_node(self):
More information about the Bf-blender-cvs
mailing list