Nodes: Further tweaks to add menu for shaders

* Move Shader before Displacement
* Organize Shader submenu by mix/add, surface and volume
* Alphabetically order Color submenu
* Move Script into utilities

Pull Request: https://projects.blender.org/blender/blender/pulls/147212
This commit is contained in:
Brecht Van Lommel
2025-10-02 17:23:39 +02:00
committed by Brecht Van Lommel
parent b1045fb1fe
commit 83595a41bb

View File

@@ -179,6 +179,13 @@ class NODE_MT_shader_node_shader_base(node_add_menu.NodeMenu):
layout,
"ShaderNodeAddShader",
)
self.node_operator(
layout,
"ShaderNodeMixShader",
)
layout.separator()
self.node_operator(
layout,
"ShaderNodeBackground",
@@ -218,10 +225,6 @@ class NODE_MT_shader_node_shader_base(node_add_menu.NodeMenu):
"ShaderNodeBsdfMetallic",
poll=object_shader_nodes_poll(context),
)
self.node_operator(
layout,
"ShaderNodeMixShader",
)
self.node_operator(
layout,
"ShaderNodeBsdfPrincipled",
@@ -232,10 +235,6 @@ class NODE_MT_shader_node_shader_base(node_add_menu.NodeMenu):
"ShaderNodeBsdfHairPrincipled",
poll=object_not_eevee_shader_nodes_poll(context),
)
self.node_operator(
layout,
"ShaderNodeVolumePrincipled"
)
self.node_operator(
layout,
"ShaderNodeBsdfRayPortal",
@@ -276,6 +275,13 @@ class NODE_MT_shader_node_shader_base(node_add_menu.NodeMenu):
"ShaderNodeBsdfTransparent",
poll=object_shader_nodes_poll(context),
)
layout.separator()
self.node_operator(
layout,
"ShaderNodeVolumePrincipled"
)
self.node_operator(
layout,
"ShaderNodeVolumeAbsorption",
@@ -300,15 +306,15 @@ class NODE_MT_shader_node_color_base(node_add_menu.NodeMenu):
layout.separator()
self.node_operator(layout, "ShaderNodeBlackbody")
self.node_operator(layout, "ShaderNodeWavelength")
self.node_operator(layout, "ShaderNodeValToRGB")
self.node_operator(layout, "ShaderNodeBrightContrast")
self.node_operator(layout, "ShaderNodeValToRGB")
self.node_operator(layout, "ShaderNodeGamma")
self.node_operator(layout, "ShaderNodeHueSaturation")
self.node_operator(layout, "ShaderNodeInvert")
self.node_operator(layout, "ShaderNodeLightFalloff")
self.node_operator(layout, "ShaderNodeRGBCurve")
self.color_mix_node(context, layout)
self.node_operator(layout, "ShaderNodeRGBCurve")
self.node_operator(layout, "ShaderNodeWavelength")
layout.separator()
self.node_operator(layout, "ShaderNodeCombineColor")
self.node_operator(layout, "ShaderNodeSeparateColor")
@@ -387,17 +393,6 @@ class NODE_MT_shader_node_math_base(node_add_menu.NodeMenu):
self.draw_assets_for_catalog(layout, self.menu_path)
class NODE_MT_shader_node_script_base(node_add_menu.NodeMenu):
bl_label = "Script"
def draw(self, _context):
layout = self.layout
self.node_operator(layout, "ShaderNodeScript")
self.draw_assets_for_catalog(layout, self.bl_label)
class NODE_MT_shader_node_displacement_base(node_add_menu.NodeMenu):
bl_label = "Displacement"
@@ -429,6 +424,9 @@ class NODE_MT_shader_node_utilities_base(node_add_menu.NodeMenu):
self.node_operator(layout, "NodeSeparateBundle")
layout.separator()
self.node_operator(layout, "GeometryNodeMenuSwitch")
if cycles_shader_nodes_poll(context):
layout.separator()
self.node_operator(layout, "ShaderNodeScript")
self.draw_assets_for_catalog(layout, self.bl_label)
@@ -447,15 +445,14 @@ class NODE_MT_shader_node_all_base(node_add_menu.NodeMenu):
self.draw_menu(layout, "Input")
self.draw_menu(layout, "Output")
layout.separator()
self.draw_menu(layout, "Displacement")
# Do not order this alphabetically, we are matching the order in the output node.
self.draw_menu(layout, "Shader")
self.draw_menu(layout, "Displacement")
layout.separator()
self.draw_menu(layout, "Color")
self.draw_menu(layout, "Texture")
self.draw_menu(layout, "Utilities")
layout.separator()
self.draw_menu(layout, "Script")
layout.separator()
self.draw_root_assets(layout)
layout.separator()
self.draw_menu(layout, "Group")
@@ -472,7 +469,6 @@ add_menus = {
"NODE_MT_category_shader_displacement": NODE_MT_shader_node_displacement_base,
"NODE_MT_category_shader_vector": NODE_MT_shader_node_vector_base,
"NODE_MT_category_shader_math": NODE_MT_shader_node_math_base,
"NODE_MT_category_shader_script": NODE_MT_shader_node_script_base,
"NODE_MT_category_shader_utilities": NODE_MT_shader_node_utilities_base,
"NODE_MT_shader_node_add_all": NODE_MT_shader_node_all_base,
}
@@ -493,7 +489,6 @@ swap_menus = {
"NODE_MT_shader_node_displacement_swap": NODE_MT_shader_node_displacement_base,
"NODE_MT_shader_node_vector_swap": NODE_MT_shader_node_vector_base,
"NODE_MT_shader_node_math_swap": NODE_MT_shader_node_math_base,
"NODE_MT_shader_node_script_swap": NODE_MT_shader_node_script_base,
"NODE_MT_shader_node_utilities_swap": NODE_MT_shader_node_utilities_base,
"NODE_MT_shader_node_swap_all": NODE_MT_shader_node_all_base,
}