diff options
author | Jacques Lucke <jacques@blender.org> | 2021-03-16 18:32:56 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-03-16 18:32:56 +0300 |
commit | 8212697830dfa651803005a3c309182a9241887c (patch) | |
tree | 3388becf819e71724386eae13c5342b123512c92 | |
parent | ffa0420ae7aa4594e4e03719c5485ab79e4ceb62 (diff) |
support default weighttemp-asset-tools-prototype
-rw-r--r-- | release/scripts/startup/bl_ui/space_node.py | 4 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_view3d.py | 11 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 4 |
4 files changed, 17 insertions, 4 deletions
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index 3c77179a094..8d956c1fd00 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -717,7 +717,9 @@ class NODE_PT_asset_tools(Panel): layout.operator("node.asset_tool_add", text="Add Asset Tool") for asset_tool in ntree.asset_tools: - layout.prop(asset_tool, "weight_group_name", text="") + col = layout.column(align=True) + col.prop(asset_tool, "weight_group_name", text="") + col.prop(asset_tool, "default_weight", text="") class NODE_OT_asset_tool_add(bpy.types.Operator): diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 8d2abbff79a..178a42ee8ef 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -7523,6 +7523,7 @@ class VIEW3D_PT_asset_tools(Panel): group_name = asset_tool.weight_group_name props = layout.operator("asset.setup_weight_paint_tool", text=group_name) props.vertex_group_name = group_name + props.default_weight = asset_tool.default_weight for socket in node_group.inputs[1:]: layout.prop(modifier, f'["{socket.identifier}"]', text=socket.name) @@ -7534,6 +7535,7 @@ class ASSET_OT_setup_weight_paint_tool(bpy.types.Operator): bl_description = "Setup weight paint tool" vertex_group_name: bpy.props.StringProperty() + default_weight: bpy.props.FloatProperty(default=1.0) @classmethod def poll(cls, context): @@ -7542,13 +7544,16 @@ class ASSET_OT_setup_weight_paint_tool(bpy.types.Operator): def execute(self, context): ob = context.active_object + if ob.mode != 'WEIGHT_PAINT': + bpy.ops.object.mode_set(mode='WEIGHT_PAINT') + name = self.vertex_group_name if not name in ob.vertex_groups: - ob.vertex_groups.new(name=name) + group = ob.vertex_groups.new(name=name) + group.add(list(range(len(ob.data.vertices))), self.default_weight, 'REPLACE') + ob.vertex_groups.active = ob.vertex_groups[name] - if ob.mode != 'WEIGHT_PAINT': - bpy.ops.object.mode_set(mode='WEIGHT_PAINT') return {'FINISHED'} diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index ef8231c116b..ae0ac054671 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -545,6 +545,8 @@ typedef struct AssetTool { struct AssetTool *prev; char weight_group_name[64]; + float default_weight; + char _pad[4]; } AssetTool; /* socket value structs for input buttons diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 0418cf3e2c3..cbc5a8cfc0d 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -10993,6 +10993,10 @@ static void rna_def_asset_tool(BlenderRNA *brna) prop = RNA_def_property(srna, "weight_group_name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Weight Group Name", "Name of a vertex group"); + + prop = RNA_def_property(srna, "default_weight", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Default Weight", ""); + RNA_def_property_ui_range(prop, 0.0, 1.0f, 0.1, 4); } static void rna_def_asset_tool_group(BlenderRNA *brna) |