90 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			90 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from lnx.logicnode.lnx_nodes import *
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class KeyboardNode(LnxLogicTreeNode):
							 | 
						||
| 
								 | 
							
								    """Activates the output on the given keyboard button event."""
							 | 
						||
| 
								 | 
							
								    bl_idname = 'LNMergedKeyboardNode'
							 | 
						||
| 
								 | 
							
								    bl_label = 'Keyboard'
							 | 
						||
| 
								 | 
							
								    lnx_section = 'keyboard'
							 | 
						||
| 
								 | 
							
								    lnx_version = 2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    property0: HaxeEnumProperty(
							 | 
						||
| 
								 | 
							
								        'property0',
							 | 
						||
| 
								 | 
							
								        items = [('started', 'Started', 'The keyboard button starts to be pressed'),
							 | 
						||
| 
								 | 
							
								                 ('down', 'Down', 'The keyboard button is pressed'),
							 | 
						||
| 
								 | 
							
								                 ('released', 'Released', 'The keyboard button stops being pressed')],
							 | 
						||
| 
								 | 
							
								        name='', default='down')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    property1: HaxeEnumProperty(
							 | 
						||
| 
								 | 
							
								        'property1',
							 | 
						||
| 
								 | 
							
								        items = [('a', 'a', 'a'),
							 | 
						||
| 
								 | 
							
								                 ('b', 'b', 'b'),
							 | 
						||
| 
								 | 
							
								                 ('c', 'c', 'c'),
							 | 
						||
| 
								 | 
							
								                 ('d', 'd', 'd'),
							 | 
						||
| 
								 | 
							
								                 ('e', 'e', 'e'),
							 | 
						||
| 
								 | 
							
								                 ('f', 'f', 'f'),
							 | 
						||
| 
								 | 
							
								                 ('g', 'g', 'g'),
							 | 
						||
| 
								 | 
							
								                 ('h', 'h', 'h'),
							 | 
						||
| 
								 | 
							
								                 ('i', 'i', 'i'),
							 | 
						||
| 
								 | 
							
								                 ('j', 'j', 'j'),
							 | 
						||
| 
								 | 
							
								                 ('k', 'k', 'k'),
							 | 
						||
| 
								 | 
							
								                 ('l', 'l', 'l'),
							 | 
						||
| 
								 | 
							
								                 ('m', 'm', 'm'),
							 | 
						||
| 
								 | 
							
								                 ('n', 'n', 'n'),
							 | 
						||
| 
								 | 
							
								                 ('o', 'o', 'o'),
							 | 
						||
| 
								 | 
							
								                 ('p', 'p', 'p'),
							 | 
						||
| 
								 | 
							
								                 ('q', 'q', 'q'),
							 | 
						||
| 
								 | 
							
								                 ('r', 'r', 'r'),
							 | 
						||
| 
								 | 
							
								                 ('s', 's', 's'),
							 | 
						||
| 
								 | 
							
								                 ('t', 't', 't'),
							 | 
						||
| 
								 | 
							
								                 ('u', 'u', 'u'),
							 | 
						||
| 
								 | 
							
								                 ('v', 'v', 'v'),
							 | 
						||
| 
								 | 
							
								                 ('w', 'w', 'w'),
							 | 
						||
| 
								 | 
							
								                 ('x', 'x', 'x'),
							 | 
						||
| 
								 | 
							
								                 ('y', 'y', 'y'),
							 | 
						||
| 
								 | 
							
								                 ('z', 'z', 'z'),
							 | 
						||
| 
								 | 
							
								                 ('0', '0', '0'),
							 | 
						||
| 
								 | 
							
								                 ('1', '1', '1'),
							 | 
						||
| 
								 | 
							
								                 ('2', '2', '2'),
							 | 
						||
| 
								 | 
							
								                 ('3', '3', '3'),
							 | 
						||
| 
								 | 
							
								                 ('4', '4', '4'),
							 | 
						||
| 
								 | 
							
								                 ('5', '5', '5'),
							 | 
						||
| 
								 | 
							
								                 ('6', '6', '6'),
							 | 
						||
| 
								 | 
							
								                 ('7', '7', '7'),
							 | 
						||
| 
								 | 
							
								                 ('8', '8', '8'),
							 | 
						||
| 
								 | 
							
								                 ('9', '9', '9'),
							 | 
						||
| 
								 | 
							
								                 ('.', 'period', 'period'),
							 | 
						||
| 
								 | 
							
								                 (',', 'comma', 'comma'),
							 | 
						||
| 
								 | 
							
								                 ('space', 'space', 'space'),
							 | 
						||
| 
								 | 
							
								                 ('backspace', 'backspace', 'backspace'),
							 | 
						||
| 
								 | 
							
								                 ('tab', 'tab', 'tab'),
							 | 
						||
| 
								 | 
							
								                 ('enter', 'enter', 'enter'),
							 | 
						||
| 
								 | 
							
								                 ('shift', 'shift', 'shift'),
							 | 
						||
| 
								 | 
							
								                 ('control', 'control', 'control'),
							 | 
						||
| 
								 | 
							
								                 ('alt', 'alt', 'alt'),
							 | 
						||
| 
								 | 
							
								                 ('capslock', 'capslock', 'capslock'),
							 | 
						||
| 
								 | 
							
								                 ('escape', 'escape', 'escape'),
							 | 
						||
| 
								 | 
							
								                 ('delete', 'delete', 'delete'),
							 | 
						||
| 
								 | 
							
								                 ('back', 'back', 'back'),
							 | 
						||
| 
								 | 
							
								                 ('up', 'up', 'up'),
							 | 
						||
| 
								 | 
							
								                 ('right', 'right', 'right'),
							 | 
						||
| 
								 | 
							
								                 ('left', 'left', 'left'),
							 | 
						||
| 
								 | 
							
								                 ('down', 'down', 'down'),],
							 | 
						||
| 
								 | 
							
								        name='', default='space')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def lnx_init(self, context):
							 | 
						||
| 
								 | 
							
								        self.add_output('LnxNodeSocketAction', 'Out')
							 | 
						||
| 
								 | 
							
								        self.add_output('LnxBoolSocket', 'State')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def draw_buttons(self, context, layout):
							 | 
						||
| 
								 | 
							
								        layout.prop(self, 'property0')
							 | 
						||
| 
								 | 
							
								        layout.prop(self, 'property1')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def draw_label(self) -> str:
							 | 
						||
| 
								 | 
							
								        return f'{self.bl_label}: {self.property1}'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_replacement_node(self, node_tree: bpy.types.NodeTree):
							 | 
						||
| 
								 | 
							
								        if self.lnx_version not in (0, 1):
							 | 
						||
| 
								 | 
							
								            raise LookupError()
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								        return NodeReplacement.Identity(self)
							 |