forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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')
 | |
|     LeenkxEventNode.on_register() |