diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-08-02 10:41:11 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-08-02 12:27:26 +0300 |
commit | 3a93314753cabe176bde1cdb084afa551323321b (patch) | |
tree | 1baa4080f94673450a1a744c42b23f5caad5b5f8 /release/scripts/startup | |
parent | d79df6c0bc65e4c94a6fd24160445b98eb408949 (diff) |
Tool System: initial particle system support
Diffstat (limited to 'release/scripts/startup')
-rw-r--r-- | release/scripts/startup/bl_ui/space_toolsystem_toolbar.py | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index c1d417ef12d..5ccd3ee123b 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -40,9 +40,6 @@ def generate_from_brushes_ex( brush_category_attr, brush_category_layout, ): - def draw_settings(context, layout, tool): - _defs_gpencil_paint.draw_settings_common(context, layout, tool) - # Categories brush_categories = {} if context.mode != 'GPENCIL_PAINT': @@ -60,6 +57,9 @@ def generate_from_brushes_ex( ) ) else: + def draw_settings(context, layout, tool): + _defs_gpencil_paint.draw_settings_common(context, layout, tool) + for brush_type in brush_category_layout: for brush in context.blend_data.brushes: if getattr(brush, brush_test_attr) and brush.gpencil_settings.gp_icon == brush_type[0]: @@ -141,6 +141,28 @@ def generate_from_brushes_ex( return tool_defs +def generate_from_enum_ex( + context, *, + icon_prefix, + data, + attr, +): + tool_defs = [] + for enum in data.rna_type.properties[attr].enum_items_static: + name = enum.name + identifier = enum.identifier + tool_defs.append( + ToolDef.from_dict( + dict( + text=name, + icon=icon_prefix + identifier.lower(), + data_block=identifier, + ) + ) + ) + return tuple(tool_defs) + + class _defs_view3d_generic: @ToolDef.from_fn def cursor(): @@ -832,6 +854,18 @@ class _defs_pose: ) +class _defs_particle: + + @staticmethod + def generate_from_brushes(context): + return generate_from_enum_ex( + context, + icon_prefix="brush.particle.", + data=context.tool_settings.particle_edit, + attr="tool", + ) + + class _defs_sculpt: @staticmethod @@ -1542,9 +1576,7 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel): _defs_edit_curve.extrude_cursor, ], 'PARTICLE': [ - # TODO(campbell): use cursor click tool to allow paint tools to run, - # we need to integrate particle system tools properly. - _defs_view3d_generic.cursor_click, + _defs_particle.generate_from_brushes, ], 'SCULPT': [ _defs_sculpt.generate_from_brushes, |