diff options
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/nodeitems_builtins.py | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py index 5dccda789e0..8c2476bd430 100644 --- a/release/scripts/startup/nodeitems_builtins.py +++ b/release/scripts/startup/nodeitems_builtins.py @@ -112,6 +112,20 @@ def line_style_shader_nodes_poll(context): snode.shader_type == 'LINESTYLE') +# only show nodes working in world node trees +def world_shader_nodes_poll(context): + snode = context.space_data + return (snode.tree_type == 'ShaderNodeTree' and + snode.shader_type == 'WORLD') + + +# only show nodes working in object node trees +def object_shader_nodes_poll(context): + snode = context.space_data + return (snode.tree_type == 'ShaderNodeTree' and + snode.shader_type == 'OBJECT') + + # All standard node categories currently used in nodes. shader_node_categories = [ @@ -180,30 +194,30 @@ shader_node_categories = [ NodeItem("NodeGroupInput", poll=group_input_output_item_poll), ]), ShaderNewNodeCategory("SH_NEW_OUTPUT", "Output", items=[ - NodeItem("ShaderNodeOutputMaterial"), - NodeItem("ShaderNodeOutputLamp"), - NodeItem("ShaderNodeOutputWorld"), + NodeItem("ShaderNodeOutputMaterial", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeOutputLamp", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeOutputWorld", poll=world_shader_nodes_poll), NodeItem("ShaderNodeOutputLineStyle", poll=line_style_shader_nodes_poll), NodeItem("NodeGroupOutput", poll=group_input_output_item_poll), ]), ShaderNewNodeCategory("SH_NEW_SHADER", "Shader", items=[ NodeItem("ShaderNodeMixShader"), NodeItem("ShaderNodeAddShader"), - NodeItem("ShaderNodeBsdfDiffuse"), - NodeItem("ShaderNodeBsdfGlossy"), - NodeItem("ShaderNodeBsdfTransparent"), - NodeItem("ShaderNodeBsdfRefraction"), - NodeItem("ShaderNodeBsdfGlass"), - NodeItem("ShaderNodeBsdfTranslucent"), - NodeItem("ShaderNodeBsdfAnisotropic"), - NodeItem("ShaderNodeBsdfVelvet"), - NodeItem("ShaderNodeBsdfToon"), - NodeItem("ShaderNodeSubsurfaceScattering"), - NodeItem("ShaderNodeEmission"), - NodeItem("ShaderNodeBsdfHair"), - NodeItem("ShaderNodeBackground"), - NodeItem("ShaderNodeAmbientOcclusion"), - NodeItem("ShaderNodeHoldout"), + NodeItem("ShaderNodeBsdfDiffuse", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfGlossy", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfTransparent", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfRefraction", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfGlass", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfTranslucent", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfAnisotropic", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfVelvet", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfToon", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeSubsurfaceScattering", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeEmission", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBsdfHair", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeBackground", poll=world_shader_nodes_poll), + NodeItem("ShaderNodeAmbientOcclusion", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeHoldout", poll=object_shader_nodes_poll), NodeItem("ShaderNodeVolumeAbsorption"), NodeItem("ShaderNodeVolumeScatter"), ]), |