From 27349290b7d79bbf0288b8db1294a16f9eac5bba Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Thu, 15 Feb 2024 08:41:42 +0100 Subject: [PATCH] Fix section cut planes not working anymore on Blender < 4.0.0 --- src/blenderbim/blenderbim/bim/operator.py | 29 ++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 9c74d12b3d..8a0fe19311 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -404,12 +404,21 @@ class BIM_OT_add_section_plane(bpy.types.Operator): def create_section_compare_node(self): group = bpy.data.node_groups.new("Section Compare", type="ShaderNodeTree") - input_value = group.interface.new_socket(name="Value", in_out="INPUT", socket_type="NodeSocketFloat") - input_value.default_value = 1.0 # Mandatory multiplier for the last node group - group.interface.new_socket(name="Vector", in_out="INPUT", socket_type="NodeSocketVector") - group.interface.new_socket(name="Line Decorator", in_out="INPUT", socket_type="NodeSocketFloat") - group.interface.new_socket(name="Value", in_out="OUTPUT", socket_type="NodeSocketFloat") - group.interface.new_socket(name="Line Decorator", in_out="OUTPUT", socket_type="NodeSocketFloat") + if bpy.app.version >= (4, 0, 0): + input_value = group.interface.new_socket(name="Value", in_out="INPUT", socket_type="NodeSocketFloat") + input_value.default_value = 1.0 # Mandatory multiplier for the last node group + group.interface.new_socket(name="Vector", in_out="INPUT", socket_type="NodeSocketVector") + group.interface.new_socket(name="Line Decorator", in_out="INPUT", socket_type="NodeSocketFloat") + group.interface.new_socket(name="Value", in_out="OUTPUT", socket_type="NodeSocketFloat") + group.interface.new_socket(name="Line Decorator", in_out="OUTPUT", socket_type="NodeSocketFloat") + else: + group.inputs.new("NodeSocketFloat", "Value") + group.inputs["Value"].default_value = 1.0 # Mandatory multiplier for the last node group + group.inputs.new("NodeSocketVector", "Vector") + group.inputs.new("NodeSocketFloat", "Line Decorator") + group.outputs.new("NodeSocketFloat", "Value") + group.outputs.new("NodeSocketFloat", "Line Decorator") + group_input = group.nodes.new(type="NodeGroupInput") group_input.location = 0, 50 @@ -457,8 +466,12 @@ class BIM_OT_add_section_plane(bpy.types.Operator): def create_section_override_node(self, obj, context): group = bpy.data.node_groups.new("Section Override", type="ShaderNodeTree") - group.interface.new_socket(name="Shader", in_out="INPUT", socket_type="NodeSocketShader") - group.interface.new_socket(name="Shader", in_out="OUTPUT", socket_type="NodeSocketShader") + if bpy.app.version >= (4, 0, 0): + group.interface.new_socket(name="Shader", in_out="INPUT", socket_type="NodeSocketShader") + group.interface.new_socket(name="Shader", in_out="OUTPUT", socket_type="NodeSocketShader") + else: + group.inputs.new("NodeSocketShader", "Shader") + group.outputs.new("NodeSocketShader", "Shader") links = group.links nodes = group.nodes