[Bf-blender-cvs] [561450715bf] functions: add missing nodes to menu
Jacques Lucke
noreply at git.blender.org
Tue Sep 17 14:09:16 CEST 2019
Commit: 561450715bf0d1cd911ad46269210fdeb6cd246f
Author: Jacques Lucke
Date: Tue Sep 17 13:49:38 2019 +0200
Branches: functions
https://developer.blender.org/rB561450715bf0d1cd911ad46269210fdeb6cd246f
add missing nodes to menu
===================================================================
M release/scripts/startup/bl_ui/space_node.py
M release/scripts/startup/nodes/menu.py
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 0f926e596de..efcee18d79a 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -206,6 +206,11 @@ class NODE_MT_add(bpy.types.Menu):
def draw(self, context):
layout = self.layout
+ from nodes.base import BaseTree
+ tree = context.space_data.node_tree
+ if isinstance(tree, BaseTree):
+ return
+
layout.operator_context = 'INVOKE_DEFAULT'
props = layout.operator("node.add_search", text="Search...", icon='VIEWZOOM')
props.use_transform = True
diff --git a/release/scripts/startup/nodes/menu.py b/release/scripts/startup/nodes/menu.py
index eb08670f747..02ef7a8917b 100644
--- a/release/scripts/startup/nodes/menu.py
+++ b/release/scripts/startup/nodes/menu.py
@@ -12,17 +12,111 @@ def draw_menu(self, context):
layout.operator("fn.node_search", text="Search", icon='VIEWZOOM')
layout.separator()
- insert_node(layout, "fn_FunctionInputNode", "Function Input")
- insert_node(layout, "fn_FunctionOutputNode", "Function Output")
+ layout.menu("FN_MT_function_nodes_menu", text="Function Nodes")
layout.separator()
- insert_node(layout, "fn_FloatMathNode", "Float Math")
- insert_node(layout, "fn_CombineVectorNode", "Combine Vector")
- insert_node(layout, "fn_SeparateVectorNode", "Separate Vector")
- insert_node(layout, "fn_VectorDistanceNode", "Vector Distance")
- insert_node(layout, "fn_ClampNode", "Clamp")
- insert_node(layout, "fn_RandomNumberNode", "Random Number")
- insert_node(layout, "fn_MapRangeNode", "Map Range")
- insert_node(layout, "fn_ObjectTransformsNode", "Object Transforms")
+ insert_node(layout, "bp_ParticleSystemNode", "Particle System")
+ layout.menu("BP_MT_influences_nodes_menu", text="Influences")
+ layout.menu("BP_MT_action_nodes_menu", text="Actions")
+ layout.menu("BP_MT_input_nodes_menu", text="Inputs")
+
+class FunctionNodesMenu(bpy.types.Menu):
+ bl_idname = "FN_MT_function_nodes_menu"
+ bl_label = "Function Nodes Menu"
+
+ def draw(self, context):
+ layout = self.layout
+ layout.operator_context = 'INVOKE_DEFAULT'
+
+ insert_node(layout, "fn_FunctionInputNode", "Function Input")
+ insert_node(layout, "fn_FunctionOutputNode", "Function Output")
+ insert_node(layout, "fn_CallNode", "Call")
+ layout.separator()
+ insert_node(layout, "fn_BooleanMathNode", "Boolean Math")
+ insert_node(layout, "fn_CompareNode", "Compare")
+ insert_node(layout, "fn_SwitchNode", "Switch")
+ layout.separator()
+ insert_node(layout, "fn_FloatMathNode", "Float Math")
+ insert_node(layout, "fn_FloatRangeNode", "Float Range")
+ insert_node(layout, "fn_ClampNode", "Clamp")
+ insert_node(layout, "fn_RandomNumberNode", "Random Number")
+ insert_node(layout, "fn_MapRangeNode", "Map Range")
+ layout.separator()
+ insert_node(layout, "fn_VectorMathNode", "Vector Math")
+ insert_node(layout, "fn_CombineVectorNode", "Combine Vector")
+ insert_node(layout, "fn_SeparateVectorNode", "Separate Vector")
+ insert_node(layout, "fn_VectorDistanceNode", "Vector Distance")
+ layout.separator()
+ insert_node(layout, "fn_SeparateColorNode", "Separate Color")
+ insert_node(layout, "fn_CombineColorNode", "Combine Color")
+ layout.separator()
+ insert_node(layout, "fn_ConstantFalloffNode", "Constant Falloff")
+ insert_node(layout, "fn_PointDistanceFalloffNode", "Point Distance Falloff")
+ insert_node(layout, "fn_MeshDistanceFalloffNode", "Mesh Distance Falloff")
+ layout.separator()
+ insert_node(layout, "fn_GetListElementNode", "Get List Element")
+ insert_node(layout, "fn_ListLengthNode", "List Length")
+ insert_node(layout, "fn_PackListNode", "Pack List")
+ layout.separator()
+ insert_node(layout, "fn_ObjectMeshNode", "Object Mesh")
+ insert_node(layout, "fn_ObjectTransformsNode", "Object Transforms")
+ insert_node(layout, "fn_TextLengthNode", "Text Length")
+
+class InfluencesNodesMenu(bpy.types.Menu):
+ bl_idname = "BP_MT_influences_nodes_menu"
+ bl_label = "Influences Nodes Menu"
+
+ def draw(self, context):
+ layout = self.layout
+ layout.operator_context = 'INVOKE_DEFAULT'
+
+ insert_node(layout, "bp_CombineInfluencesNode", "Combine Influences")
+ insert_node(layout, "bp_AlwaysExecuteNode", "Always Execute")
+ insert_node(layout, "bp_AgeReachedEventNode", "Age Reached Event")
+ insert_node(layout, "bp_MeshCollisionEventNode", "Mesh Collision Event")
+ insert_node(layout, "bp_CustomEventNode", "Custom Event")
+
+ insert_node(layout, "bp_TurbulenceForceNode", "Turbulence Force")
+ insert_node(layout, "bp_GravityForceNode", "Gravity Force")
+ insert_node(layout, "bp_DragForceNode", "Drag Force")
+ insert_node(layout, "bp_MeshForceNode", "Mesh Force")
+
+ insert_node(layout, "bp_InitialGridEmitterNode", "Initial Grid Emitter")
+ insert_node(layout, "bp_MeshEmitterNode", "Mesh Emitter")
+ insert_node(layout, "bp_PointEmitterNode", "Point Emitter")
+ insert_node(layout, "bp_SizeOverTimeNode", "Size Over Time")
+ insert_node(layout, "bp_ParticleTrailsNode", "Trails")
+
+
+class ActionNodesMenu(bpy.types.Menu):
+ bl_idname = "BP_MT_action_nodes_menu"
+ bl_label = "Action Nodes Menu"
+
+ def draw(self, context):
+ layout = self.layout
+ layout.operator_context = 'INVOKE_DEFAULT'
+
+ insert_node(layout, "bp_ChangeParticleColorNode", "Change Color")
+ insert_node(layout, "bp_ChangeParticleVelocityNode", "Change Velocity")
+ insert_node(layout, "bp_ChangeParticleSizeNode", "Change Size")
+ insert_node(layout, "bp_ChangeParticlePositionNode", "Change Position")
+
+ insert_node(layout, "bp_ParticleConditionNode", "Condition")
+ insert_node(layout, "bp_ExplodeParticleNode", "Explode Particle")
+ insert_node(layout, "bp_KillParticleNode", "Kill Particle")
+
+class InputNodesMenu(bpy.types.Menu):
+ bl_idname = "BP_MT_input_nodes_menu"
+ bl_label = "Input Nodes Menu"
+
+ def draw(self, context):
+ layout = self.layout
+ layout.operator_context = 'INVOKE_DEFAULT'
+
+ insert_node(layout, "bp_ParticleInfoNode", "Particle Info")
+ insert_node(layout, "bp_SurfaceInfoNode", "Surface Info")
+ insert_node(layout, "bp_SurfaceImageNode", "Image Colors")
+ insert_node(layout, "bp_SurfaceWeightNode", "Vertex Weights")
+
def insert_node(layout, type, text, settings = {}, icon = "NONE"):
operator = layout.operator("node.add_node", text = text, icon = icon)
More information about the Bf-blender-cvs
mailing list