Files
test/scripts/startup/bl_ui/node_add_menu_texture.py
Damien Picard 88dbe8dcd1 I18n: Disambiguate "Pattern"
- "Pattern" can mean type of texture.
- It can also refer to refers to a type of matching wildcard.

Issue reported by Hoang Duy Tran.
2025-01-13 12:40:45 +01:00

149 lines
5.2 KiB
Python

# SPDX-FileCopyrightText: 2022-2023 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
from bpy.types import Menu
from bpy.app.translations import (
contexts as i18n_contexts,
)
from bl_ui import node_add_menu
class NODE_MT_category_texture_input(Menu):
bl_idname = "NODE_MT_category_texture_input"
bl_label = "Input"
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeCoordinates")
node_add_menu.add_node_type(layout, "TextureNodeCurveTime")
node_add_menu.add_node_type(layout, "TextureNodeImage")
node_add_menu.add_node_type(layout, "TextureNodeTexture")
class NODE_MT_category_texture_output(Menu):
bl_idname = "NODE_MT_category_texture_output"
bl_label = "Output"
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeOutput")
node_add_menu.add_node_type(layout, "TextureNodeViewer")
class NODE_MT_category_texture_color(Menu):
bl_idname = "NODE_MT_category_texture_color"
bl_label = "Color"
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeHueSaturation")
node_add_menu.add_node_type(layout, "TextureNodeInvert")
node_add_menu.add_node_type(layout, "TextureNodeMixRGB")
node_add_menu.add_node_type(layout, "TextureNodeCurveRGB")
layout.separator()
node_add_menu.add_node_type(layout, "TextureNodeCombineColor")
node_add_menu.add_node_type(layout, "TextureNodeSeparateColor")
class NODE_MT_category_texture_converter(Menu):
bl_idname = "NODE_MT_category_texture_converter"
bl_label = "Converter"
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeValToRGB")
node_add_menu.add_node_type(layout, "TextureNodeDistance")
node_add_menu.add_node_type(layout, "TextureNodeMath")
node_add_menu.add_node_type(layout, "TextureNodeRGBToBW")
node_add_menu.add_node_type(layout, "TextureNodeValToNor")
class NODE_MT_category_texture_distort(Menu):
bl_idname = "NODE_MT_category_texture_distort"
bl_label = "Distort"
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeAt")
node_add_menu.add_node_type(layout, "TextureNodeRotate")
node_add_menu.add_node_type(layout, "TextureNodeScale")
node_add_menu.add_node_type(layout, "TextureNodeTranslate")
class NODE_MT_category_texture_pattern(Menu):
bl_idname = "NODE_MT_category_texture_pattern"
bl_label = "Pattern"
bl_translation_context = i18n_contexts.id_texture
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeBricks")
node_add_menu.add_node_type(layout, "TextureNodeChecker")
class NODE_MT_category_texture_texture(Menu):
bl_idname = "NODE_MT_category_texture_texture"
bl_label = "Texture"
def draw(self, _context):
layout = self.layout
node_add_menu.add_node_type(layout, "TextureNodeTexBlend")
node_add_menu.add_node_type(layout, "TextureNodeTexClouds")
node_add_menu.add_node_type(layout, "TextureNodeTexDistNoise")
node_add_menu.add_node_type(layout, "TextureNodeTexMagic")
node_add_menu.add_node_type(layout, "TextureNodeTexMarble")
node_add_menu.add_node_type(layout, "TextureNodeTexMusgrave")
node_add_menu.add_node_type(layout, "TextureNodeTexNoise")
node_add_menu.add_node_type(layout, "TextureNodeTexStucci")
node_add_menu.add_node_type(layout, "TextureNodeTexVoronoi")
node_add_menu.add_node_type(layout, "TextureNodeTexWood")
class NODE_MT_category_texture_group(Menu):
bl_idname = "NODE_MT_category_texture_group"
bl_label = "Group"
def draw(self, context):
layout = self.layout
node_add_menu.draw_node_group_add_menu(context, layout)
class NODE_MT_texture_node_add_all(Menu):
bl_idname = "NODE_MT_texture_node_add_all"
bl_label = "Add"
bl_translation_context = i18n_contexts.operator_default
def draw(self, _context):
layout = self.layout
layout.menu("NODE_MT_category_texture_input")
layout.menu("NODE_MT_category_texture_output")
layout.separator()
layout.menu("NODE_MT_category_texture_color")
layout.menu("NODE_MT_category_texture_converter")
layout.menu("NODE_MT_category_texture_distort")
layout.menu("NODE_MT_category_texture_pattern")
layout.menu("NODE_MT_category_texture_texture")
layout.separator()
layout.menu("NODE_MT_category_texture_group")
layout.menu("NODE_MT_category_layout")
classes = (
NODE_MT_texture_node_add_all,
NODE_MT_category_texture_input,
NODE_MT_category_texture_output,
NODE_MT_category_texture_color,
NODE_MT_category_texture_converter,
NODE_MT_category_texture_distort,
NODE_MT_category_texture_pattern,
NODE_MT_category_texture_texture,
NODE_MT_category_texture_group,
)
if __name__ == "__main__": # only for live edit.
from bpy.utils import register_class
for cls in classes:
register_class(cls)