from lnx.logicnode.lnx_nodes import * class GetChildNode(LnxLogicTreeNode): """Returns the child of the given object by name or by a specific type.""" bl_idname = 'LNGetChildNode' bl_label = 'Get Object Child' lnx_section = 'relations' lnx_version = 1 def sw_update(self, context): self.inputs[1].hide = (self.property0 == 'By Type') property0: HaxeEnumProperty( 'property0', items = [('By Name', 'By Name', 'By Name'), ('Contains', 'Contains', 'Contains'), ('Starts With', 'Starts With', 'Starts With'), ('Ends With', 'Ends With', 'Ends With'), ('By Type', 'By Type', 'By Type')], name='Method', default='By Name', update=sw_update) property1: HaxeEnumProperty( 'property1', items = [('MeshObject', 'Mesh', 'MeshObject'), ('CameraObject', 'Camera', 'CameraObject'), ('LightObject', 'Light', 'LightObject'), ('SpeakerObject', 'Speaker', 'SpeakerObject'), ('DecalObject', 'Decal', 'DecalObject'), ('ProbeObject', 'Probe', 'ProbeObject'), ('CurveObject', 'Curve', 'CurveObject')], name='Type', default='MeshObject') def lnx_init(self, context): self.add_input('LnxNodeSocketObject', 'Parent') self.add_input('LnxStringSocket', 'Child Name') self.add_output('LnxNodeSocketObject', 'Child') def draw_buttons(self, context, layout): layout.prop(self, 'property0') if self.property0 == 'By Type': layout.prop(self, 'property1')