| 
									
										
										
										
											2025-04-03 09:37:54 +00:00
										 |  |  | from lnx.logicnode.lnx_nodes import * | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class LeenkxEventNode(LnxLogicTreeNode): | 
					
						
							|  |  |  |     """Leenkx Event""" | 
					
						
							|  |  |  |     bl_idname = 'LNLeenkxEventNode' | 
					
						
							|  |  |  |     bl_label = 'Leenkx Event' | 
					
						
							|  |  |  |     bl_description = 'Trigger an event from the network passing both data and ID' | 
					
						
							|  |  |  |     lnx_category = 'Leenkx' | 
					
						
							|  |  |  |     lnx_version = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @staticmethod | 
					
						
							|  |  |  |     def get_enum_id_value(obj, prop_name, value): | 
					
						
							|  |  |  |         return obj.bl_rna.properties[prop_name].enum_items[value].identifier | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @staticmethod | 
					
						
							|  |  |  |     def get_count_in(type_name): | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             'client': 0, | 
					
						
							|  |  |  |             'host': 1, | 
					
						
							|  |  |  |             'securehost': 2 | 
					
						
							|  |  |  |         }.get(type_name, 0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_enum(self): | 
					
						
							|  |  |  |         return self.get('property0', 0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def set_enum(self, value): | 
					
						
							|  |  |  |         # Checking the selection of each type | 
					
						
							|  |  |  |         select_current = self.get_enum_id_value(self, 'property0', value) | 
					
						
							|  |  |  |         select_prev = self.property0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         #Check if type changed | 
					
						
							|  |  |  |         if select_prev != select_current: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             for i in self.inputs: | 
					
						
							|  |  |  |                 self.inputs.remove(i) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             # Arguements for type Client | 
					
						
							|  |  |  |             if (self.get_count_in(select_current) == 0): | 
					
						
							|  |  |  |                     self.add_input('LnxStringSocket', 'Url', default_value="8001") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             # Arguements for type Host | 
					
						
							|  |  |  |             if (self.get_count_in(select_current) == 1): | 
					
						
							|  |  |  |                     self.add_input('LnxStringSocket', 'Domain', default_value="127.0.0.1") | 
					
						
							|  |  |  |                     self.add_input('LnxIntSocket', 'Port', default_value=8001) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             # Arguements for type Secure Host | 
					
						
							|  |  |  |             if (self.get_count_in(select_current) == 2): | 
					
						
							|  |  |  |                     self.add_input('LnxStringSocket', 'Domain', default_value="127.0.0.1") | 
					
						
							|  |  |  |                     self.add_input('LnxIntSocket', 'Port', default_value=8001) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         self['property0'] = value | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     property0: HaxeEnumProperty( | 
					
						
							|  |  |  |         'property0', | 
					
						
							|  |  |  |         items = [('client', 'Client', 'Network client Event listener'), | 
					
						
							|  |  |  |                 ('host', 'Host', 'Network host Event listener'), | 
					
						
							|  |  |  |                 ('securehost', 'Secure Host', 'Network secure host Event listener')], | 
					
						
							|  |  |  |         name='',  | 
					
						
							|  |  |  |         default='client', | 
					
						
							|  |  |  |         set=set_enum,  | 
					
						
							|  |  |  |         get=get_enum) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     property1: HaxeEnumProperty( | 
					
						
							|  |  |  |         'property1', | 
					
						
							|  |  |  |         items = [('onopen', 'OnOpen', 'Listens to onOpen event'), | 
					
						
							|  |  |  |                  ('onmessage', 'OnMessage', 'Listens to onMessage event'), | 
					
						
							|  |  |  |                  ('onerror', 'OnError', 'Listens to onError event'), | 
					
						
							|  |  |  |                  ('onclose', 'OnClose', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onseen', 'OnSeen', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onserver', 'OnServer', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onconnections', 'OnConnections', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onping', 'OnPing', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onleft', 'OnLeft', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('ontimeout', 'OnTimeout', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onrpc', 'OnRpc', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onrpcresponse', 'OnRpcResponse', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onwireleft', 'OnWireLeft', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onwireseen', 'OnWireSeen', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('ontorrent', 'OnTorrent', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('ontracker', 'OnTracker', 'Listens to onClose event'), | 
					
						
							|  |  |  |                  ('onannounce', 'OnAnnounce', 'Listens to onClose event')], | 
					
						
							|  |  |  |         name='',  | 
					
						
							|  |  |  |         default='onopen') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, *args, **kwargs): | 
					
						
							|  |  |  |         super(LeenkxEventNode, self).__init__(*args, **kwargs) | 
					
						
							|  |  |  |         array_nodes[str(id(self))] = self | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def lnx_init(self, context): | 
					
						
							|  |  |  |         #self.add_input('LnxNodeSocketAction', 'In') | 
					
						
							|  |  |  |         self.add_input('LnxStringSocket', 'Url', default_value="ws://127.0.0.1:8001") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         self.add_output('LnxNodeSocketAction', 'Out') | 
					
						
							|  |  |  |         self.add_output('LnxDynamicSocket', 'ID') | 
					
						
							|  |  |  |         self.add_output('LnxDynamicSocket', 'Data') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw_buttons(self, context, layout): | 
					
						
							|  |  |  |         layout.prop(self, 'property0') | 
					
						
							|  |  |  |         layout.prop(self, 'property1') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def register(): | 
					
						
							|  |  |  |     add_category('Leenkx', icon='ORIENTATION_CURSOR') | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  |     LeenkxEventNode.on_register() |