Merge branch 'blender-v4.0-release'
This commit is contained in:
commit
642ad4110b
|
@ -288,7 +288,23 @@ class NODE_OT_interface_item_new(NodeInterfaceOperator, Operator):
|
|||
default='INPUT',
|
||||
)
|
||||
|
||||
socket_type = 'NodeSocketFloat'
|
||||
# Returns a valid socket type for the given tree or None.
|
||||
@staticmethod
|
||||
def find_valid_socket_type(tree):
|
||||
socket_type = 'NodeSocketFloat'
|
||||
# Try the default float socket type
|
||||
if tree.valid_socket_type(socket_type):
|
||||
return socket_type
|
||||
# Custom nodes may not support float sockets, search all
|
||||
# registered socket subclasses.
|
||||
types_to_check = [bpy.types.NodeSocket]
|
||||
while types_to_check:
|
||||
t = types_to_check.pop()
|
||||
idname = getattr(t, "bl_idname", "")
|
||||
if tree.valid_socket_type(idname):
|
||||
return idname
|
||||
# Test all subclasses
|
||||
types_to_check.extend(t.__subclasses__())
|
||||
|
||||
def execute(self, context):
|
||||
snode = context.space_data
|
||||
|
@ -300,9 +316,9 @@ class NODE_OT_interface_item_new(NodeInterfaceOperator, Operator):
|
|||
active_pos = active_item.position if active_item else -1
|
||||
|
||||
if self.item_type == 'INPUT':
|
||||
item = interface.new_socket("Socket", socket_type=self.socket_type, in_out='INPUT')
|
||||
item = interface.new_socket("Socket", socket_type=self.find_valid_socket_type(tree), in_out='INPUT')
|
||||
elif self.item_type == 'OUTPUT':
|
||||
item = interface.new_socket("Socket", socket_type=self.socket_type, in_out='OUTPUT')
|
||||
item = interface.new_socket("Socket", socket_type=self.find_valid_socket_type(tree), in_out='OUTPUT')
|
||||
elif self.item_type == 'PANEL':
|
||||
item = interface.new_panel("Panel")
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue