[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