[Bf-blender-cvs] [3881606540f] builtin-simulation-nodes: put builtin node groups into menu
Jacques Lucke
noreply at git.blender.org
Mon Mar 23 13:28:24 CET 2020
Commit: 3881606540ff1d67fcc035b372b625b48a2f2c0f
Author: Jacques Lucke
Date: Mon Mar 23 13:17:01 2020 +0100
Branches: builtin-simulation-nodes
https://developer.blender.org/rB3881606540ff1d67fcc035b372b625b48a2f2c0f
put builtin node groups into menu
===================================================================
M release/scripts/startup/bl_operators/node.py
M release/scripts/startup/nodeitems_builtins.py
===================================================================
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py
index 8dd5d1a4da9..6826670e145 100644
--- a/release/scripts/startup/bl_operators/node.py
+++ b/release/scripts/startup/bl_operators/node.py
@@ -37,6 +37,7 @@ from builtin_node_groups import (
export_builtin_node_group,
get_builtin_group_items_cb,
import_builtin_node_group_by_item_identifier,
+ import_builtin_node_group_with_dependencies,
)
class NodeSetting(PropertyGroup):
@@ -335,6 +336,26 @@ class NODE_OT_import_group_template_search(bpy.types.Operator):
import_builtin_node_group_by_item_identifier(self.item)
return {'FINISHED'}
+class NODE_OT_add_builtin_node_group(bpy.types.Operator):
+ bl_idname = "node.add_builtin_node_group"
+ bl_label = "Add Builtin Node Group"
+
+ group_name: StringProperty()
+
+ def invoke(self, context, event):
+ node_tree = context.space_data.edit_tree
+ for node in node_tree.nodes:
+ node.select = False
+
+ group = import_builtin_node_group_with_dependencies(self.group_name)
+ group_node = node_tree.nodes.new("SimulationNodeGroup")
+ group_node.node_tree = group
+ group_node.select = True
+ node_tree.nodes.active = group_node
+
+ bpy.ops.node.translate_attach('INVOKE_DEFAULT')
+ return {'FINISHED'}
+
classes = (
NodeSetting,
@@ -345,4 +366,5 @@ classes = (
NODE_OT_tree_path_parent,
NODE_OT_export_group_template,
NODE_OT_import_group_template_search,
+ NODE_OT_add_builtin_node_group,
)
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 36e8ab0cb23..ef0e4864169 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -24,6 +24,9 @@ from nodeitems_utils import (
NodeItem,
NodeItemCustom,
)
+from builtin_node_groups import (
+ get_builtin_groups_data,
+)
# Subclasses for standard node types
@@ -122,6 +125,14 @@ def node_group_items(context):
group.name,
{"node_tree": "bpy.data.node_groups[%r]" % group.name})
+ def draw_builtin_node_groups(self, layout, context):
+ layout.separator()
+ groups_json_data = get_builtin_groups_data()
+ for group_name in groups_json_data.keys():
+ props = layout.operator("node.add_builtin_node_group", text=group_name)
+ props.group_name = group_name
+
+ yield NodeItemCustom(draw=draw_builtin_node_groups)
# only show input/output nodes inside node groups
def group_input_output_item_poll(context):
More information about the Bf-blender-cvs
mailing list