This commit is contained in:
2026-02-24 17:35:26 -08:00
parent 1c3c30e6ce
commit d45c632dcd
28 changed files with 1982 additions and 97 deletions

View File

@ -197,7 +197,10 @@ class CreateStyleNode(LnxLogicTreeNode):
properties += self.inputs[ind].name + ':'
ind += 1
self['property1'] = properties
try:
self['property1'] = properties
except AttributeError:
pass # Skip write if context doesn't allow it
return self.get('property0', 60)

View File

@ -537,6 +537,40 @@ class LnxAddCallGroupNode(bpy.types.Operator):
return {'FINISHED'}
class LnxFrameSelectedNodes(bpy.types.Operator):
"""Frame selected nodes - works with custom node trees"""
bl_idname = 'lnx.frame_selected_nodes'
bl_label = 'Frame Selected Nodes'
bl_options = {'REGISTER', 'UNDO'}
@classmethod
def poll(cls, context):
if context.space_data is None or context.space_data.type != 'NODE_EDITOR':
return False
return context.space_data.edit_tree is not None
def execute(self, context):
tree = context.space_data.edit_tree
selected_nodes = [n for n in tree.nodes if n.select]
if not selected_nodes:
self.report({'WARNING'}, "No nodes selected")
return {'CANCELLED'}
frame = tree.nodes.new('NodeFrame')
frame.label = "Frame"
for node in selected_nodes:
node.parent = frame
for node in tree.nodes:
node.select = False
frame.select = True
tree.nodes.active = frame
return {'FINISHED'}
class LNX_PT_LogicGroupPanel(bpy.types.Panel):
bl_label = 'Leenkx Logic Group'
bl_idname = 'LNX_PT_LogicGroupPanel'
@ -575,6 +609,7 @@ __REG_CLASSES = (
TreeVarNameConflictItem,
LnxUngroupGroupTree,
LnxAddCallGroupNode,
LnxFrameSelectedNodes,
LNX_PT_LogicGroupPanel
)
register, unregister = bpy.utils.register_classes_factory(__REG_CLASSES)