from lnx.logicnode.lnx_nodes import * class SeparateColorNode(LnxLogicTreeNode): """Splits the given color into its RGBA components (red, green, blue, and alpha). If the input color is `null`, the outputs are each set to `0.0`. """ bl_idname = 'LNSeparateColorNode' bl_label = 'Separate RGBA' lnx_section = 'color' lnx_version = 2 def lnx_init(self, context): self.add_input('LnxColorSocket', 'Color', default_value=[1.0, 1.0, 1.0, 1.0]) self.add_output('LnxFloatSocket', 'R') self.add_output('LnxFloatSocket', 'G') self.add_output('LnxFloatSocket', 'B') self.add_output('LnxFloatSocket', 'A') def get_replacement_node(self, node_tree: bpy.types.NodeTree): if self.lnx_version not in (0, 1): raise LookupError() return NodeReplacement.Identity(self)