from lnx.logicnode.lnx_nodes import * class SetVisibleNode(LnxLogicTreeNode): """Sets whether the given object is visible. @input Object: Object whose property to be set. @input Visible: Visibility. @input Children: Set the visibility of the children too. Visibility is set only to the immediate children. @input Recursive: If enabled, visibility of all the children in the tree is set. Ignored if `Children` is disabled. @seeNode Get Object Visible""" bl_idname = 'LNSetVisibleNode' bl_label = 'Set Object Visible' lnx_section = 'props' lnx_version = 2 property0: HaxeEnumProperty( 'property0', items = [('object', 'Object', 'All object componenets visibility'), ('mesh', 'Mesh', 'Mesh visibility only'), ('shadow', 'Shadow', 'Shadow visibility only'), ], name='', default='object') def lnx_init(self, context): self.add_input('LnxNodeSocketAction', 'In') self.add_input('LnxNodeSocketObject', 'Object') self.add_input('LnxBoolSocket', 'Visible') self.add_input('LnxBoolSocket', 'Children', default_value=True) self.add_input('LnxBoolSocket', 'Recursive', default_value=False) self.add_output('LnxNodeSocketAction', 'Out') def draw_buttons(self, context, layout): layout.prop(self, 'property0') def get_replacement_node(self, node_tree: bpy.types.NodeTree): if self.lnx_version not in (0, 1): raise LookupError() return NodeReplacement.Identity(self)