forked from LeenkxTeam/LNXSDK
		
	Update Files
This commit is contained in:
		
							
								
								
									
										73
									
								
								leenkx/blender/lnx/logicnode/event/LN_on_event.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								leenkx/blender/lnx/logicnode/event/LN_on_event.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | ||||
| from lnx.logicnode.lnx_nodes import * | ||||
|  | ||||
|  | ||||
| class OnEventNode(LnxLogicTreeNode): | ||||
|     """Activates the output when the given event is received. | ||||
|  | ||||
|     @seeNode Send Event to Object | ||||
|     @seeNode Send Global Event""" | ||||
|     bl_idname = 'LNOnEventNode' | ||||
|     bl_label = 'On Event' | ||||
|     lnx_version = 2 | ||||
|     lnx_section = 'custom' | ||||
|  | ||||
|     operators = { | ||||
|         'init': 'Init', | ||||
|         'update': 'Update', | ||||
|         'custom': 'Custom' | ||||
|     } | ||||
|  | ||||
|     def set_mode(self, context): | ||||
|         if self.property1 != 'custom': | ||||
|             if len(self.inputs) > 1: | ||||
|                 self.inputs.remove(self.inputs[0]) | ||||
|         else: | ||||
|             if len(self.inputs) < 2: | ||||
|                 self.add_input('LnxNodeSocketAction', 'In') | ||||
|                 self.inputs.move(1, 0) | ||||
|  | ||||
|     # Use a new property to preserve compatibility | ||||
|     property1: HaxeEnumProperty( | ||||
|         'property1', | ||||
|         items=[ | ||||
|             ('init', 'Init', 'Assigns an Event listener at runtime'), | ||||
|             ('update', 'Update', 'Assigns an Event listener continuously'), | ||||
|             None, | ||||
|             ('custom', 'Custom', 'Assigns an Event listener everytime input is detected'), | ||||
|         ], | ||||
|         name='', | ||||
|         description='Chosen method for assigning an Event listener', | ||||
|         default='init', | ||||
|         update=set_mode | ||||
|     ) | ||||
|  | ||||
|     def lnx_init(self, context): | ||||
|         self.add_input('LnxStringSocket', 'String In') | ||||
|  | ||||
|         self.add_output('LnxNodeSocketAction', 'Out') | ||||
|  | ||||
|         self.set_mode(context) | ||||
|  | ||||
|     def draw_buttons(self, context, layout): | ||||
|         layout.prop(self, 'property1', text='') | ||||
|  | ||||
|     def draw_label(self) -> str: | ||||
|         if self.inputs[0].is_linked: | ||||
|             return self.bl_label | ||||
|         return f'{self.bl_label}: {self.inputs[0].get_default_value()}' | ||||
|  | ||||
|     def get_replacement_node(self, node_tree: bpy.types.NodeTree): | ||||
|         if self.lnx_version not in (0, 1): | ||||
|             raise LookupError() | ||||
|  | ||||
|         newnode = node_tree.nodes.new('LNOnEventNode') | ||||
|  | ||||
|         try: | ||||
|             newnode.inputs[0].default_value_raw = self["property0"] | ||||
|         except: | ||||
|             pass | ||||
|  | ||||
|         for link in self.outputs[0].links: | ||||
|             node_tree.links.new(newnode.outputs[0], link.to_socket) | ||||
|  | ||||
|         return newnode | ||||
		Reference in New Issue
	
	Block a user